我知道这可能是一个简单的错误,但我仍然无法弄清楚错误。我正在
指针地址,而不是打印出整数时的值。
#include<stdio.h>
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
答案 0 :(得分:11)
words
未初始化,因此您从未定义的值开始递增。
int words,lines,chara = 0;
将chara
设置为0,但不初始化其他变量。如果你想初始化所有3,你需要
int words = 0, lines = 0, chara = 0;
答案 1 :(得分:3)
int words,lines,chara = 0;
此行声明3个变量,但仅初始化chara
。
稍后在循环中开始递增words
,但它尚未初始化。 它有一个未定义的值。
您只需执行以下操作即可更正:
int words = 0, lines = 0, chara = 0;
答案 2 :(得分:1)
您错过了初始化words
变量
int words =0;
未初始化的变量将具有垃圾值。