好的,所以我不确定这里发生了什么。我有一个简单的函数 int foo(char *filename)
,它接受 filename
并计算文件中的单词数。
int foo(char *filename){
FILE *inFile;
int wordCount = 0;
printf("foo\n"); // test printf() statement (currently prints)
char word[50];
inFile = (&filename, "r");
printf("infile\n"); // test printf() statement (currently prints)
while (1){
printf("while"); // test printf() statement (doesn't print)
fscanf(inFile, "%s", word);
if (feof(inFile))
break;
printf("%d", wordCount); //test printf() statement
wordCount++;
}
fclose(inFile);
return wordCount;
}
如您所见,我打印了“infile”,而不是“while”。我收到段错误。有谁知道为什么这不起作用另外,我的
inFile = (&filename, "r");
语句是否正确?我不太擅长指针。 最佳答案
我很惊讶这一行实际上编译:
inFile = (&filename, "r");
如果您尝试打开文件:
inFile = fopen(filename, "r");
编辑:
如前所述,您需要使用
printf
结束 \n
或调用 fflush(stdout)
否则它将被缓冲而不打印。关于c - C中的奇怪段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7577311/