C ++计数器不工作

时间:2017-02-09 01:17:04

标签: c++ counter

我读到的文件中包含了字符串“hello”。 没有错误,程序说“你有135197296 E”,这显然是错误的。我在这里难过。我是C ++的新手,看起来这将是一个有趣而简单的程序......我错了。

我不知道是否重要,但已完成的程序应该能够打开用户提供的文件,读取文件,并将字母的频率放在单独的文件中。显然,我还没到那里,我只是在这方面寻求帮助:)

 int main() {
    string filenamein, filenameout;
    char character;
    ifstream fileC;
    int tletter, eletter;

    cout << "which file do you want to open?";
    cin >> filenamein;

    fileC.open(filenamein.c_str());
    if (fileC)
    {
        while (fileC)
        {
            fileC.get(character);
            char e, E;
            if (character == 'e'|| character == 'E')
            {
                eletter++;
            }
        }
    }

    cout<< "You have " << eletter <<" E's";
    fileC.close();

    return 0;
}

1 个答案:

答案 0 :(得分:0)

在C ++中,除非您明确初始化它们,否则不会初始化int等原始变量。这通常是低效的,因为有时您不知道变量在声明变量时要假设的第一个值,因此将其初始化为例如0将是冗余写入操作。

因此,如果您希望eletter0开始,则必须执行以下操作。

int eletter = 0;

这样你就可以从0算起来了。如果你没有初始化它,它的初始值将是你分配内存时计算机RAM的那个位置上的4 B垃圾数据,在这种情况下是大约1.35亿。