while(!feof(...)) 中加if(!feof(...)) 问题
来源:互联网 发布:pymongo 连接数据库 编辑:程序博客网 时间:2024/05/13 14:24
在做课设时,经常会遇到莫名其妙的乱码,其中可能的原因有这样一种;
李开给的例子程序中有这样的写法:
while (!feof(pFile)){
pDormNode = (DORM_NODE *)malloc(sizeof(DORM_NODE));
fread(pDormNode, sizeof(DORM_NODE), 1, pFile);
pDormNode->snext = NULL;
pDormNode->next = hd;
hd = pDormNode;
}以前都没注意,n天前问了苏宙行,他说这地方是不对的,需要加一个判断 if(!feof(pFile))今天有何胡伟政讨论了一下,原因大致明白了当fead最后一段文件信息时,已经到文件结尾,但feof()”函数返回的是最后一次“读操作的内容而不是地址”以前都弄错啦。。。也就是说:当读完最后一段信息时,feof(pFile)判定的是最后一个字节而不位置,所以!feof(pFile) == 1.。。while()仍进行,由于文件中已没有了信息,这样就会导致链表中出现乱码。如果这样写 while (!feof(pFile))
{
pDormNode = (DORM_NODE *)malloc(sizeof(DORM_NODE));
fread(pDormNode, sizeof(DORM_NODE), 1, pFile);if(!feof(pFile)) {
pDormNode->snext = NULL;
pDormNode->next = hd;
hd = pDormNode;
}free(pDormNode);}当读到文件结尾又读文件时,if(!feof(pFile))就不成立,这段不确定的信息就不会加到链表中,也就可以避免乱码啦。。。不过书上用时都是while(!feof(pFile)) {..... if(!feof(pFile)) ....}
不知李开。。。。
- while(!feof(...)) 中加if(!feof(...)) 问题
- feof问题
- feof()
- feof
- feof()
- feof函数重读问题
- feof()函数问题
- 关于<stdio.h>中feof()函数的问题
- About "feof()"
- EOF feof()
- feof(fp)
- 5. feof()
- 八 feof
- linux feof
- feof ferror
- fgetc,feof
- php 使用feof时要注意了,小心变while ( ! feof(null) ) 死环
- 有关使用feof()函数问题出现?问题
- 炖肉又熟又烂的小窍门
- uva 10302 summation of polynomials
- net中C#自动化调用Word的实例总结
- C#学习日志(12)
- 山西煤老板用20万1元钱付饭钱
- while(!feof(...)) 中加if(!feof(...)) 问题
- C# 反射技术测试笔记
- 性能监控与性能问题定位之:Java篇
- xml文件操作方式之一
- 当,习惯一个人
- 美国两名神父窃取百万捐款包养情妇
- iOS Code Signing: 解惑
- javac编译器的一些参数
- 【Android笔记】(3)Button控件