cin是istream对象,从标准输入读取数据
cout是ostream对象,从标准输出写入数据
cerr是ostream对象,通常用于输出程序错误信息,写入到标准错误
“>>”运算符,用来从一个istream对象读取输入信息
“<<”运算符,用来向一个ostream对象写入输出信息
继承机制使我们可以声明一个特定的类继承自另一个类,我们通常可以将一个派生类对象当作其基类对象使用.
IO对象无拷贝或赋值操作,因此我们也不能将形参或返回类型设置为流类型.进行IO操作的函数通常以引用方式传递和返回流.读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的.
程序崩溃,输出缓冲区不会被刷新.
如果想在每次输出操作后都刷新缓冲区,我们可以使用unitbuf操作符:
cout << unitbuf; //所又输出操作后都会立即刷新缓冲区
cout << nounitbuf; //回到正常的缓冲方式.
导致缓冲刷新的几种可能:
程序正常结束
缓冲区满
使用操纵符 endl,flush,ends,unitbuf等
一个输出流关联到另一个流(使用cout之后,在使用cin的时候,会将缓冲区刷新)
当一个fstream对象被销毁时,close会自动被调用.
ifstream对象从一个给定文件读取数据.
ofstream对象向一个给定文件写入数据.
fstream对象可以读写给定文件.
cin数据之间是用空格分开的,想要保留数据之间的空格可以用getline函数
比如:输入 hello everyone
cin >> buffer –> helloeveryone
getline(cin, buffer) –>hello everyone
保留被ofstream打开的文件中已有数据的唯一方法是显示指定app或in模式.
ifstream和ofstream的使用方法:
ifstream ifs(“file.txt”);
while(getline(ifs, buffer))
cout << buffer;
ofstream ofs(“file.txt”)
while(getline(cin, buffer))
ofs << buffer;
相应的istringstream和ostringstream 用法相似.