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

版权所有,转载请注明出处。http://www.vimer.cn

最近的一些技术整理(20120109)

前段时间一直没写博客,昨天更新了一篇,今天突然又来了兴致,那就再更新一篇吧(所以说啊,治疗拖延症最好的方法就是现在开始做) 这篇还是一些技术的整理,...

阅读全文

C++模板的几个应用

C++的模板其实是个挺纠结的东西,用的不好的话,编译的一堆错误够你调到崩溃,但要是用的好呢,又确实非常方便,我们来看看 一.获取数组长度 比如 ...

阅读全文

又见C++诡异问题

用C++越久,越是觉得C++太多陷阱,真是防不胜防。 我们看这样一段代码: C++ #include <stdio.h> using namespace std; ...

阅读全文

3则回应给“C/C++循环获取文件中的每行数据(别以为很简单!)”

  1. 陈绍榕说道:

    建议楼主好好学学C++,不然你是没有资格评论什么C比C++好的,虽然现在我也比较喜欢C,不过很多时候C++会更方便的

    [回复]

    朱念洋 回复:

    文章不显示创建年份真是个失误,当然也不是说我现在c++就学的怎么样了。不过说实话,你要是现在还这么纠结语言层面上的好坏的话,我觉得你也需要好好成长一下。

    [回复]

  2. 陈绍榕说道:

    嗯…写完看其他的才发现这个应该是你很早以前发的…本来以为是初学者刚学C++还这样评价…抱歉了…不过说实话,国内这种地方想创业发展起来是很困难的,想安稳的过日子还是搞技术相对比较好些的…

    [回复]

发表评论