gpt4 book ai didi

c - fscanf() 返回负值

转载 作者:可可西里 更新时间:2023-11-01 09:55:38 24 4
gpt4 key购买 nike

我正在使用 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);
}
}

最佳答案

您可能想添加此调用

rewind(fp);

就在

while (fscanf(fp, " %s %d", ip, &port) > 0)
{

还应该经常检查系统调用的结果。在您的情况下,主要是 fopen() 是否确实返回了与 NULL 不同的内容。

此外,while(!feof(fp)) 构造很可能并不总是按预期运行 (Why is “while ( !feof (file) )” always wrong?)。您最好按照 WhozCraig 在下面的评论中建议的方式进行操作。

关于c - fscanf() 返回负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com