我正在使用fscanf()函数从文本文件逐行读取数据。它运行良好,但突然间我不知道我犯了什么错误,现在函数返回一个负值。下面 是我的代码片段:fscanf()返回负值
FILE *fp;
char ip[16];
int port;
fp = fopen("ClientInformation.txt", "r");
int size = -1;
while (!feof(fp))
{
fgetc(fp);
size++;
}
char buff[1000];
sprintf(buff,"%i",size);
MessageBox(NULL,
buff,
"Size",
MB_ICONINFORMATION);
if(size > 0)
{
while (fscanf(fp, " %s %d", ip, &port) > 0)
{
MessageBox(NULL,"fscanf() Successful","SUCCESS!", MB_ICONINFORMATION);
}
}
负值可能是一个错误代码,如果不检查errno变量... – stdcall
嗯,是不是你的'while(!feof(fp))'循环把'fp'放在'EOF'? –
假设它甚至可以打开(从不检查)。 – WhozCraig