几个C++文件输入常用函数(1)
来源:互联网 发布:速冻食品 知乎 编辑:程序博客网 时间:2024/05/24 04:40
最近在做C++的大作业中的小作业,用到文件的地方很多。我也不是第一次用了,但是很久不用就是这么不熟悉,时常会忘记很多细节。今天就在这里总结一下。
1.文件的输入
ifstream fp_account("input.txt");
if(!fp_account)//若打开失败
{
cout<<"input opens failed!"<<endl;
return 0;
}
int i=0;
string in;
while(fp_account.peek()!=EOF)//????????????????
{
getline(fp_account,in);//不用吃换行符!
file[i].setBankName(in);
.......
}
.......
今天在调试的时候发现文件怎么都读不进string in。后来经过各种排查,才发现文件打开失败了。我很少遇到这样的问题,所以在一开始没有写文件打开失败的处理。结果这一偷懒耽误了我太多时间。最后我找到打开失败的原因时已经呵呵了:那个文件是input.txt.txt,图形化显示的时候没显示后缀,我把.txt当后缀了,其实人家是名字!!!
还有就是getline的问题。对于各种读取字符、字符串的操作,换行符会不会被丢弃是个很重要的细节,每次用的时候我都会查。我之前查到说getline(cin,str)是读到换行符为止。后来发现其实是把换行符吃掉了。
2.文件末尾的判断
今天发现了一个好函数,叫fp.peek()。它的作用是在输入流中读取一个字符,若它不是EOF则放回缓冲区,若是则跳出。用起来就像这样:while(fp_account.peek()!=EOF).
本来我用的是while(!fp_account.eof()),但它会多循环一次。因为“在这里,大家可能有一个误区,认为eof()返回true时是读到文件的最后一个字符,其实不然,eof()返回true时是读到文件结束符0xFF,而文件结束符是最后一个字符的下一个字符[1]。”
参考:
[1]http://larrycheung.blog.163.com/blog/static/1317296612011474934348/
- 几个C++文件输入常用函数(1)
- 几个常用C语言函数
- C++_输入常用函数
- C++_输入常用函数
- 几个常用函数(切除字符串,时间处理,文件上传)
- C语言字符串几个常用函数小结
- 几个常用C语言函数的分析
- C语言字符串几个常用函数
- C语言几个常用的函数
- matlab读写文件的几个常用函数
- c语言文件的几个操作函数
- 几个输入函数
- C文件操作常用函数
- 常用C函数----文件类
- C常用文件函数列表:
- C 常用文件操作函数
- 【裸机开发笔记】6410的系统时钟设置(下)---几个常用函数的C源码。
- 6410的系统时钟设置(下)---几个常用函数的C源码
- 程序员的爱情
- linux下异步网络操作的错误码
- 运行resin时出现的一点儿小问题
- Android 代码混淆exception解决办法
- ApplicationContext.xml中加载properties配置文件
- 几个C++文件输入常用函数(1)
- hdu1176免费馅饼(动态规划)
- Android--ViewPager 组件使用详解
- ifsteam与ofstream
- 刷机后IMEI丢失如何能刷回来
- SpringMVC之Controller中多个方法
- (每日算法)Leetcode -- Largest Rectangle in Histogram(最大实心矩形)
- DataView的使用与筛选数据
- perl语言介绍