infos
C++文件流
iostream 提供了cin cout 分别用于从标准输入读取流和向标准输出写入流
cout 标准输出 屏幕 输出写入
fstream文件流
cin 从标准输入读取
cout 向标准输入写入
ofstream 向文件写入
ifstream 从文件读取
fstream 从文件读取、向文件写入
文件处理 <iostream>
<fstream>
打开文件 从文件读取信息或者向文件写入信息ofstream ifstream;
必须先打开
ofstream和fstream对象都可以用来打开文件进行写操作
打开文件进行读取ifstream fstream
open()函数标准语法
open()函数是fstream ifstream ofstream对象的一个成员
void open(const char *filename,ios::openmode mode);
open()成员函数的第一个参数指定要打开的文件的名称和位置 要打开的文件的名称位置,第二个参数定义文件被打开的模式
ios::app
ios::ate 文件打开后定位到文件末尾
打开模式
iso::in
ios::out 写入
ofstream 写入
ios::trunc 文件已经存在 内容将在打开文件之前被切段 文件长度为0
两种或是两种以上模式集合使用
写入模式ios::out
ios::in 读取
ifstream
ofstream
打开一个文件用于读写
fstream afile;
声明对象
类对象成员
fstream ffile
ffile.open("file.dat",ios::out | ios::in)
关闭文件
程序终止 会自动关闭刷新流 释放所有分配的内存 关闭打开的文件
函数是 类对象的成员
fstream ifstream ofstream类对象成员
void c loese()
写入文件
流插入运算符<<向文件写入信息
输出信息到屏幕 ofstream fstream
刘提取 读取
ifstream fstream
流插入
文件位置指针
istream和ostream都提供了用于重新定义文件位置指针的成员函数重新定位文件位置指针函数成员函数包括关于
istream seekg("seek get")
文件位置指针
file seek pointer;
position
istream ostream 提供了用于重新定位文件位置指针的成员
重新定位文件位置指针的成员函数
seekg 长整形 指定查找方向
fileObject.seekg(n);
把文件的度读指针从fileObject当前位置向后移n个字节
fileObject.seekg(n,ios::end)
文件的读指针从fileObjace末尾往回移动n个字节
定位到fileObject末尾
fileObject.seekg(0,ios::end);
写(输出) 与 流插入运算符<<
读(输入) 与 流提取运算符 >>
exception 异常程序在执行期间产生的问题
程序运行时发生的特殊情况异常提供了一种转移程序控制权的方式
c++异常处理涉及到三个关键字try catch throw
throw问题出现 程序抛出异常 通过throw关键字完成
catch 想要处理问题的地方,通过异常处理程序捕获异常catch关键字 catch捕获异常
try
try中的代码标识将被激活的特殊异常 try跟多个catch
有一个块抛出异常 捕获异常的方法使用try catch try块中放置可能抛出异常的 代码
try中放置可能抛出异常的代码,try块中的代码被称为保护代码
try放置可能抛出异常的代码,try块中的 代码被称为保护代码
try
{
//保护代码
}catch(ExceptionName e1)
{
//catch block
}catch(ExceptionName e2)
{
//catch block
}catch(ExceptionName eN)
{
//catch block;
}
C++异常处理
执行期间产生的问题
运行发生的特殊情况 异常提供了一种转移程序控制权的方式
throw 出现问题 程序抛出异常
catch 想处理问题的地方 通过异常处理程序捕获异常 catch关键字用于捕获异常
try块中的代码标识将被激活的特定异常
try块代码标识将被激活的特定异常
try块中的保护代码标识将被激活的特定异常
malloc() new不只是分配内存任何 动态分配内存的变量不再需要使用 delete操作符释放占用内存
delete pvalue;
堆:函数中暂时未使用的内存 在程序运行 用于动态分配的内存
栈:函数中所有申明的变量使用的内存都是
stack
namespace
区分它们 使用名字之外使用一些额外的信息 std::
应用程序
可用的库中也存在一个相同的函数
编译器无法判断 那个
命名空间 作为附加信息来区分库相同名称的标识
上下文
使用命名空间定义了上下文 命名空间就是定义了一个范围
定义命名空间
命名空间的定义使用关键字namespace using namespace std;
命名空间的定义使用关键字namespace 后跟命名空间的名称;
namespace namespace_name
{
//
为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称
name::code; code 变量函数
命名空间如何为变量或函数等实体定义范围
命名空间如何为变量或函数等实体定义范围
using
使用using namespace 這样在使用命名空间时就可以不用在前面加上命名空间的名称
這个指令告诉编译器 后续的代码将使用指定的命名空间中的名称
using namespace 使用命名空间 不用在前面加上命名空间的名称 告诉编译器 后续的代码将使用指定的命名空间名称
using指令 指定命名空间中的特定项目
使用std命名空间的cout
using std::cout;
命名空间中特定名称
using namespace::item
整个命名空间
using namespace namespaceName;
随后代码 使用cout不用加命名空间名称作为前缀
但是std命名 空间其他项目仍加上命名空间名称作为前缀
using指令引入的名称遵循正常的范围规则
using指令引入的名称遵循正常的范围规则 名称从使用using指令可见
using
命名空间可以定义在几个不同的部分
不连续命名空间
命名空间定义在几个不同的部分命名空间由几个单独定义的部分组成命名空间的各个组成部分可以分散在多个文件
具体到那个命名空间下的项目item using namespaceName::item
引入命名空间 下 的所
using namespace namespaceName
模板
泛型编程的基础
泛型编程以一种独立任何特定类型的方式编程
泛型编程即以一种独立于任何特定类型的方式编写代码
库容器 迭代器
template 模板泛型编程的
函数模板
template <class type> ret-type func-name(parameter list);
template
模板支持参数化多态工具 模板使用户为类或者函数
模板 使用模板 可以使用户为类或者函数声明一种一般模式 是用户为类或函数申明为一种一般模式
使得类中的某些数据成员或者成员函数的参数
模板支持参数化多态 模板可以使用户为类或者函数声明一种一般模式
类中 的某些数据成员或者成员函数的参数 返回值取得任意类型
模板 是一种对类型进行参数化的工具
让程序的实现与类型无关
模板的声明定义只能在全局
不能在main函数中声明或定义模板
既可以在该函数中使用内置类型的地方都可以使用模板形参参数
模板形参需要调用该模板函数 提供的模板实参来初始化模板形参
一旦编译器确定了实际的模板实参类型就称实例化为函数模板的一个实例
函数模板调用
都是以template开始后接模板形参列表组成 模板形参列表 模板形参不能为空
typename class 一样表明后面的符号为一个类型
定义模板
表明后面的符号为类型
template<typename T>
使用嵌套依赖类型
nested depended name
多线程 多任务处理的特殊形式
多任务处理允许让电脑同时运行多个程序
多线程 task 多任务 多线程 多任务
多任务处理允许让电脑同时运行两个
infos的更多相关文章
- hdu 1047 (big integer sum, fgets or scanf, make you func return useful infos) 分类: hdoj 2015-06-18 08:21 39人阅读 评论(0) 收藏
errors made, boundary conditions, <= vs < , decreasing vs increasing , ++, –, '0'/'1' vs 0/1 p ...
- error Infos
- java MongoDB driver error infos
DataTables warning: table id=dateTable - Ajax error. For more information about this error, please s ...
- openStack error infos 调试
glance image-create --name "RuiCheck" --disk-format qcow2 --container-format bare --is-pub ...
- one Infos
Backend Server is still running (PID:). Please try 'euc-server stop' first. (原因很简单,进程控制脚本无restart函数功 ...
- Infos - 通过搜索引擎获取信息与数据
常用搜索引擎命令 site 用来查询网站收录量. 比如site:http://www.cnblogs.com/ inurl 查URL中包含的元素,比如inurl:bbs ,搜索出URL包含bbs的页面 ...
- Android之SQLite数据存储
一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句. ...
- Struts2日期类型转换
针对日期类java.util.Date进行类型转换,要求客户端使用"yyyy-MM-dd","yyyy/MM/dd"中的任意一种输入,并以"yyyy- ...
- Java豆瓣电影爬虫——抓取电影详情和电影短评数据
一直想做个这样的爬虫:定制自己的种子,爬取想要的数据,做点力所能及的小分析.正好,这段时间宝宝出生,一边陪宝宝和宝妈,一边把自己做的这个豆瓣电影爬虫的数据采集部分跑起来.现在做一个概要的介绍和演示. ...
随机推荐
- layer弹出层 获取index
function closelayer(){ var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index ...
- HTML——部分MP4在谷歌浏览器上无法播放
Chrome浏览器支持HTML5,它支持原生播放部分的MP4格式(不用通过Flash等插件). 为什么是部分MP4呢?MP4有非常复杂的含义(见http://en.wikipedia.org/wiki ...
- 【2018年全国多校算法寒假训练营练习比赛(第四场)-A】石油采集(匈牙利算法)
试题链接:https://www.nowcoder.com/acm/contest/76/A [思路] 每个‘#’的右边和下边如果也是‘#’说明这两个点构成通路,以此重构一幅图,然后找二分图的最大匹配 ...
- 原创:Angular + controllerAs + CoffeeScript的一个问题,及其解决方案
config是一个待注入的value,它的值是{count: 1} 看代码(用普通函数的写法): $routeProvider.when '/test', template: "Hello ...
- beego配置文件
关于App配置: #App配置 for Api AppName = ApiService RunMode = dev RouterCaseSensitive = true ServerName = A ...
- 【解题报告】[动态规划]-PID69 / 过河卒
原题地址:http://www.rqnoj.cn/problem/69 解题思路: 用DP[i][j]表示到达(i,j)点的路径数,则 DP[0][0]=1 DP[i][j]=DP[i-1][j]+D ...
- HDU - 6041:I Curse Myself(Tarjan求环&K路归并)
There is a connected undirected graph with weights on its edges. It is guaranteed that each edge app ...
- WCF OpenTimeout, CloseTimeout, SendTimeout, ReceiveTimeout
1.OpenTimeout 客户端与服务端建立连接时,如果超过指定时间都还没完成,就引发TimeoutException. 在TCP通讯中,服务器必须首先准备好侦听端口并在该端口上侦听(Listen) ...
- String类的一些常规方法
String类 String类常用方法: ①length(): length() 长度 方法** 对比:数组.length 属性** 一般情况下,一个数字,一个字母,一个汉 ...
- LA2218 Triathlon
题意 PDF 分析 设出长度\(x,y,1-x-y\),就是关于它们的二元一次不等式,判断有没有解. 可以用半平面交来解决. x/V[i]+y/U[i]+(1-x-y)/W[i] < x/V[j ...