最后更新于 .

想必大家在学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());
}

这段代码有没有问题呢?没有~,基本上?!禼++ 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好啊,简洁精致,希望大家不要再犯和我一样的错误就好。