我试图运行一个程序来查找文件的字数。每次我编译程序时,都会给我一个分段错误(Core Dumped)。无法弄清楚原因。字数,分段错误 - C
#include <stdio.h>
int main(int argc, char* argv[]){
int wc = 1;
FILE *input = fopen(argv[1],"r");
char c = fgetc(input);
while(c != EOF){
if(c == ' '){
wc++;
}
else
c = fgetc(input);
}
fclose(input);
printf("Word Count = %d", wc);
return 0;
}
“我编译程序时,它给了我一个分段错误”。我假设你的意思是你运行程序的时候。那么你如何运行该程序?也许'fopen'失败了。您应该始终使用错误检查代码来验证函数调用是否成功。 – kaylum
您还应该检查'argc'以确保文件名作为参数传递。顺便说一句,第一次'c'是一个空格,你将进入一个无限循环,因为之后你再也不会读新的'c'了。为什么在找到任何单词之前'wc'设置为1? – lurker
'char c = fgetc''fgetc'有意返回一个'int',而不是'char'。并始终检查功能结果的错误! – Olaf