我使用fgets();
FEOF,似乎不工作 - 文本文件
一个文本文件中读取行我有一个循环:while(!feof(fp))
的事情是,该程序保持在进入循环即使在达到并读取最后一行之后,并且在调试文件ptr时只显示点而不显示一串数据。
我怎样才能知道我已经达到了最后,而不是再次进入循环?
while (!feof(fp)) {
if (strcmp(data2->ID ,data1->ID)<0) {
fseek(fp, backTo, SEEK_SET);
fprintf(fp, "%s",lin2);
fprintf(fp, "%s",lin1);
flag = 1;
}
else
{
strcpy(data1->ID,data2->ID);
strcpy(data1->name,data2->name);
data1->price=data2->price;
}
if(fgets(line2, sizeof(line2),fp)!=NULL)
{
itemSize2=strlen(line2)+1;
strcpy(data2->ID,strtok (line2,","));
}
}
只有在文本文件中的行,我用FSEEK和去文件的开头,然后我用fprintf中两次,并在这些线上写,以后我应该到达EOF
更多的代码,请。 – svens 2011-03-18 16:42:59
简化你的代码,看看feof是否仍然行为不端。对于初学者,fset可能会重置eof标志。 – Arkadiy 2011-03-18 17:01:15