繁体   English   中英

这个简单的代码有什么问题?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM