1

我知道这可能是一个简单的错误,但我仍然无法找出错误。我正进入(状态

当我打印出一个整数时,指针地址而不是值。

#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);
}

狐狸.txt

The quick 

brown fox
jumps over

the lazy 


dog

输出 :

There are 2665625 of words
4

3 回答 3

11

words未初始化,因此您从未定义的值开始递增。

int words,lines,chara = 0;

设置chara为 0 但不初始化其他变量。如果要初始化所有 3 个,则需要

int words = 0, lines = 0, chara = 0;
于 2013-08-14T18:27:00.583 回答
3
int words,lines,chara = 0;

此行声明了 3 个变量,但仅初始化chara.

稍后在循环中开始递增words,但尚未初始化。它有一个未定义的值。

您可以通过简单地纠正它:

int words = 0, lines = 0, chara = 0;
于 2013-08-14T18:28:11.617 回答
1

你错过了初始化words变量

int words =0;

未初始化的变量将具有垃圾值。

于 2013-08-14T18:27:21.207 回答