fscanf 读入4096行数据

来源:互联网 发布:单片机datesheet是什么 编辑:程序博客网 时间:2024/05/01 09:22

fscanf 离奇的bug

问题描述:用fscanf 读入4096行数据,不会有问题,但是当读入数据超过4096行时,程序会出问题,会影响其他文件的读写。超过一定的行数时,问题又会消失。

猜测原因:从磁盘读入文件,文件块大小正好为4096k,超过此大小,容易产生缓冲区溢出错误。

解决方法:

 char line[100]; FILE *fp = fopen("network1.txt", "r");while (!feof(fp)){    line[0] = 0;     if (fgets(line, MAX_LINE_LEN, fp) == NULL)  continue;     if (line[0] == 0)   continue;     printf("%s", line);}fclose(fp);
1 0
原创粉丝点击