我读到的文件中包含了字符串“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;
}
答案 0 :(得分:0)
在C ++中,除非您明确初始化它们,否则不会初始化int
等原始变量。这通常是低效的,因为有时您不知道变量在声明变量时要假设的第一个值,因此将其初始化为例如0
将是冗余写入操作。
因此,如果您希望eletter
从0
开始,则必须执行以下操作。
int eletter = 0;
这样你就可以从0
算起来了。如果你没有初始化它,它的初始值将是你分配内存时计算机RAM的那个位置上的4 B垃圾数据,在这种情况下是大约1.35亿。