gpt4 book ai didi

c - 为什么在这段代码中,fgets 不应该返回 null?

转载 作者:行者123 更新时间:2023-11-30 17:42:58 25 4
gpt4 key购买 nike

我正在编写一个程序,其中一部分如下:

#define BUFFSIZE 2000
while( fgets(buff, BUFFSIZE - 1, fPtr) != NULL)
{
//how many words is read from the source file in the current line
int wordread = 0;

word = strtok(buff, punc);
//one word read
while( word != NULL)
{
//sorting
int k = 0;
while(strcmp(word, words[k]) < 0)
k++;
if(strcmp(word, words[k]))
{
last++;
for(int l = last; l >= 0; l--)
strcpy(words[l + 1],words[l]);
strcpy(words[wordread],word);
}
index[last][lineread]++;

wordread++;//go to next word

word = strtok(NULL, punc);
}
lineread++;//go to next line
}

但我知道编译器不会进入第一个 while

while( fgets(buff, BUFFSIZE - 1, fPtr) != NULL)

我明白这个 fgets 首先返回 NULL。但fPtr有一个正确的地址,并且在该地址中有一个包含一些数据的文件。

FILE *fPtr = fopen(argv[1], "r");

buff的定义是:

char buff[BUFFSIZE];

有人可以帮忙吗?如果需要完整的代码,请告诉我全部编写。

最佳答案

编译器没有进入第一个循环的问题是它应该读取的文件不存在。它返回NULL

关于c - 为什么在这段代码中,fgets 不应该返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20346854/

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