C++ primer 第八章IO库 小结

1、IO类——总体介绍

1、IO对象无拷贝或赋值函数
2、条件状态
在这里插入图片描述
在这里插入图片描述
将流当作条件使用的代码就等价于!fail(),而eof和bad操作只能表示特定的错误。
3、管理条件状态
可以通过存储iostate来保存cin状态,当cin在其他函数使用完之后恢复。
4、管理输出缓冲
以下三种方式可以强制刷新输出缓冲
在这里插入图片描述
可通过cin.tie(&ostream)自行指定关联输出流。

2、文件输入输出

使用文件流对象
在这里插入图片描述
通过ifstream或者ofstream可以进行文件的输入输出,值得注意的是,如果使用<<进行文件输出,即使指定了用二进制输出,也会将int型等数据转化为字符串输出,如下

int _tmain(int argc, _TCHAR* argv[])
{
	int a;
	ofstream outf;
	outf.open("二进制.dat", ofstream::binary);
	a = 123;
	outf << a << endl;
	return 0;
}

结果如下
在这里插入图片描述

3、string流

istringstream从string读取数据,ostringstream向string写入数据,stringstream可以读写
在这里插入图片描述
示例

	ifstream inf;
	string temp;
	string name;
	string singlephone;
	vector<string> phonenum;
	inf.open("文本.txt", ofstream::binary);
	if (inf)
	{
		while (getline(inf, temp))
		{
			istringstream file(temp);
			file >> name;
			cout << name << "\t";
			while (file >> singlephone)
			{
				phonenum.push_back(singlephone);
				cout << singlephone << "\t";
			}
			cout << endl;
		}
	}

输出与输出
在这里插入图片描述
在这里插入图片描述
stringstream就像一个string容器一样,输入的是string,输出也是string,好处是可以按照读文本的方式读取,自动忽略空格与回车。

心得体会

感觉这一张讲来将去都是在讲读写文本,而二进制读取则没有怎么讲,例如write(&ofstream,size);
好处是对读写文本有了更深的体会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值