输入输出体系结构:
(1)、在C++的流类库中定义了四个全局流对象:cin,cout,cerr和clog
cin :标准输入流对象, 键盘为其对应的标准设备。
cout :标准输出流对象,显示器为标准设备。
cerr和clog :标准错误输出流,输出设备是显示器。为非缓冲区流,一旦错误发生立即显示。
提取运算符“>>”(stream_extraction operator)和插入运算符“<<”(stream_insertion operator),执行输入/输出操作。
- “提取”的含义是指输入操作,可看作从流中提取一个字符序列。
- “插入”的含义是指输出操作,可看作向流中插入一个字符序列。
(2)、标准输入/输出成员函数
输入成员函数:
(1)字符输入: int istream::get();
(2)字符串输入: istream&istream::get(char *,int,char=’\n’);
输出成员函数
(3)、 输出参数字符
ostream&ostream::put(char);
ostream&ostream::flush();
eg:
(1)、cin>> 接受一个字符或者字符串,遇到“空格”、“TAB”、“回车”都结束 (2)、cin.get() 或者 cin.get(变量名) 接收字符 cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 (3)、cin.getline() 接受一个字符串,可以接收空格并输出 char m[20]; cin.getline(m,5); cout<<m<<endl; 输入:jkljkljkl 输出:jklj 接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出; (4)、getline() 受一个字符串,可以接收空格并输出,需包含“#include<string>” string str; getline(cin,str); cout<<str<<endl;
标准C++中的string类的用法总结
(3)、文件流
ifstream ifile;//只输入用 ofstream ofile;//只输出用 fstream iofile;//既输入又输出用
类ofstream, ifstream 和fstream 是分别从ostream, istream 和iostream 中引申而来的
(a)、打开文件
void open(const char* filename,int mode,int access);
参数: filename: 要打开的文件名 mode: 要打开文件的方式 access: 打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文 ios::in: 文件以输入方式打开 ios::out: 文件以输出方式打开 ios::nocreate: 不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
可以用“或”把以上属性连接起来,如ios::out|ios::binary
打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件
如果open函数只有文件名一个参数,则是以读/写普通文件打开.
(b)、文本文件的读写
//写文件
//读文件
(c)、 二进制文件
必须使用read() 和write() 方法读取和写入二进制文件