[英]What is wrong with this simple code?
我知道这可能是一个简单的错误,但是我仍然无法找出错误。 我正进入(状态
当我打印出整数时,使用指针地址而不是值。
#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
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;
未初始化的变量将具有垃圾值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.