技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> C/C++循环获取文件中的每行数据(别以为很简单!)

C/C++循环获取文件中的每行数据(别以为很简单!)

浏览:3740次  出处信息

想必大家在学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好啊,简洁精致,希望大家不要再犯和我一样的错误就好。

建议继续学习:

  1. 在C++中实现foreach循环,比for_each更简洁!    (阅读:8508)
  2. 海量小文件存储    (阅读:7375)
  3. 其实,文件也可以truncate    (阅读:7249)
  4. 关于Linux的文件系统cache    (阅读:4640)
  5. for 循环为何可恨?    (阅读:4340)
  6. Perl 倒行分析文件方法。perl读文本文件,从末尾往前读.    (阅读:4310)
  7. 循环、迭代、遍历和递归    (阅读:4313)
  8. 修改系统最大文件句柄数    (阅读:4119)
  9. PHP:从一个大文件第N行开始读取M行    (阅读:3796)
  10. linux file命令是如何识别文件的类型的    (阅读:3722)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:一致性hash算法 >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1