这个简单的代码有什么问题?
我知道这可能是一个简单的错误,但我仍然无法弄清楚错误。 我正进入(状态
当我打印出整数时,指针地址而不是值。
#include int main(){ char s1[100]; int words,lines,chara = 0; FILE * fp; fp = fopen("fox.txt","r"); if(fp==NULL){ printf("Can't open file"); } else{ while (fscanf(fp,"%s",s1) != EOF){ words++; // printf("%s",s1); } } printf("There are %d of words",words); }
fox.txt
The quick brown fox jumps over the lazy dog
输出:
There are 2665625 of words
words
未初始化,因此您从未定义的值开始递增。
int words,lines,chara = 0;
将chara
设置为0但不初始化其他变量。 如果你想初始化所有3,你需要
int words = 0, lines = 0, chara = 0;
int words,lines,chara = 0;
该行声明了3个变量,但只初始化了chara
。
稍后在循环中,您开始递增words
但它尚未初始化。 它有一个未定义的值。
你可以简单地纠正它:
int words = 0, lines = 0, chara = 0;
你错过了初始化words
变量
int words =0;
未初始化的变量将具有垃圾值。