我正在编写一个程序,其中一部分如下:
#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( fgets(buff, BUFFSIZE - 1, fPtr) != NULL)
我知道这个fgets最初会返回NULL。但是fPtr有一个正确的地址,并且在地址中有一些数据文件。
FILE *fPtr = fopen(argv[1], "r");
和buff的定义是:
char buff[BUFFSIZE];
任何人都可以帮忙吗?如果需要整个代码,请告诉我写下所有代码。
答案 0 :(得分:0)
编译器没有进入第一个循环的问题是它应该读取的文件,不存在。它正在返回NULL