C/C++循环获取文件中的每行数据(别以为很简单!)
浏览:4719次 出处信息
想必大家在学C/C++编程的一开始就会学习如何在文件中循环获取没一行的数据,但是我得以切身经历来告诉大家,有时候,课本真的不一定是对的……
#include <fstream>
ifstream fin;
fin.open(“uin_err_list”);
int count=0;
string stUin;
while(getline(fin,strUin))
{
count++;
printf(“data=%s\n”,strUin.c_str());
}
这段代码有没有问题呢?没有~,基本上。《c++ primer plus》里都有的例子,怎么会有问题呢?
很遗憾,就是有问题。
当我在64位机器上启动这个程序的时候,总是在读取了第一行之后就自动结束,在检查了无数次未果之后,我不得不的出一个很无奈的结论―STL库对64位的支持有点差劲……
好啦,既然如此,那么我们就只能通过别的办法在64位机上循环获取数据,代码如下:
FILE * fp = fopen(file_qq, “r”);
char data[100]={0};
while(fgets(data, 100, fp) != NULL)
{
string strData=data;
}
fclose(fp);
纯C的代码,唉,还是C好啊,简洁精致,希望大家不要再犯和我一样的错误就好。
建议继续学习:
- 在C++中实现foreach循环,比for_each更简洁! (阅读:9099)
- 海量小文件存储 (阅读:8559)
- 其实,文件也可以truncate (阅读:8083)
- 关于Linux的文件系统cache (阅读:5501)
- Perl 倒行分析文件方法。perl读文本文件,从末尾往前读. (阅读:5170)
- 循环、迭代、遍历和递归 (阅读:5097)
- for 循环为何可恨? (阅读:5089)
- 修改系统最大文件句柄数 (阅读:4650)
- PHP:从一个大文件第N行开始读取M行 (阅读:4739)
- linux file命令是如何识别文件的类型的 (阅读:4663)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:从140秒到2秒的优化
后一篇:一致性hash算法 >>
文章信息
- 作者:Dante 来源: Vimer
- 标签: 循环 文件
- 发布时间:2009-11-19 09:44:22
建议继续学习
近3天十大热文
-
[919] WordPress插件开发 -- 在插件使用 -
[134] 解决 nginx 反向代理网页首尾出现神秘字 -
[54] 整理了一份招PHP高级工程师的面试题 -
[52] 全站换域名时利用nginx和javascri -
[52] 海量小文件存储 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[51] Innodb分表太多或者表分区太多,会导致内 -
[50] 用 Jquery 模拟 select -
[49] CloudSMS:免费匿名的云短信 -
[48] jQuery性能优化指南
