读出istream对象cin中的回车换行符

file name:
boy
向磁盘文件中写入数据
beyonce
if i were a boy
love on top
The data in disk file is:

beyonce
if i were a boy
love on top

//文件名下多了一空行,令我百思不得其解。经研究发现cin中残存了回车换行符!





#include<iostream>
#include<fstream>
#include<string>
using namespace std;

ofstream & openFile(ofstream &out,const string &fileName)
{
	out.close();
	out.clear();
	out.open(fileName.c_str());
	return out;
}

ifstream & openFile(ifstream &in,const string &fileName)
{
	in.close();
	in.clear();
	in.open(fileName.c_str());
	return in;
}

ofstream & write(ofstream &out)
{
	//向磁盘文件中写入数据
	cout<<"向磁盘文件中写入数据"<<endl;
	string line,str;
	//getline(cin,str); //读出cin中的回车换行符

	while(getline(cin,line))
		out<<line<<endl; 
	return out;
}

ifstream & read(ifstream &in)
{
	//读取磁盘文件中的数据
	cout<<"The data in disk file is:"<<endl;
	string str;
	while(getline(in,str))
		cout<<str<<endl; //并输出到终端屏幕上
	return in;
}

int main()
{
	string fileName;
	cout<<"file name:"<<endl;
	cin>>fileName;
	cin.clear();
	
	//写文件
	ofstream outFile;
	openFile(outFile,fileName);
	write(outFile);

	//读文件
	ifstream inFile;
	openFile(inFile,fileName);
	read(inFile);

	inFile.close();

	return 0;
}

//加上 getline(cin,str);就行了

转载于:https://my.oschina.net/ppppower/blog/35991

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值