C++ Primer 第八章 标准 IO 库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuck51cto/article/details/80921244
C++ Primer 第八章 标准 IO 库


1. 面向对象的标准库

iostream   定义读写控制窗口的类型
fstream    读写文件
sstream    用于读写存储在内存中的 string 对象


2. 条件状态

流必须处于无错误状态,才能用于输入或输出。检测流是否用的最简单的方法是检查其真值:

    

		  int ival;
			 cin >> ival;


				  if (cin)
					   // ok to use cin, it is in a valid state
				  while (cin >> word)
					   // ok: read operation successful ...


   

3. 文件流

fstream,由 iostream 派生而来,提供读写同一个文件的功能。
文件流对象的使用
ifstream infile;    // 读文件
ofstream outfile;   // 写文件

检查文件打开是否成功
string ifile("a.txt");
string ofile("b.txt");

ifstream infile(ifile);
ofstream outfile(ofile);

if (!infile) {
cerr << "error: unable to open input file: "
<< ifile << endl;
}

文件打开模式
in 打开文件做读操作
out 打开文件做写操作
app 在每次写之前找到文件尾
ate 打开文件后立即将文件定位在文件尾
trunc 打开文件时清空已存在的文件流
binary 以二进制模式进行 IO 操作

    ofstream outfile2("Q:\\spider\\test.txt", ofstream::out | ofstream::ate | ofstream::app);  //往文件尾写

if (outfile2) {
outfile2<<"Hell world";
outfile2.flush();
outfile2.close();

}



4. 字符串流

stringstream,由 iostream 派生而来,提供读写 string 的功能,需要包含头文件sstream 。

stringstream strm;       创建自由的 stringstream 对象
stringstream strm(s);    创建存储 s 的副本的 stringstream 对象,其中 s 是 string 类型的对象
strm.str()               返回 strm 中存储的 string 类型对象
strm.str(s)             将 string 类型的 s 复制给 strm,返回 void

stringstream使用:

string s;
stringstream ss(s);
ss<<"Hello world ";
ss<<123;
string s2(ss.str());
cout<<s2<<endl;










猜你喜欢

转载自blog.csdn.net/fuck51cto/article/details/80921244