为什么我的C ++代码不显示任何输出?

时间:2020-07-27 22:19:27

标签: c++ string if-statement

我正在学习c ++入门书,并练习5.14。练习是:

编写程序以从标准输入中读取字符串 寻找重复的单词。该程序应在输入中找到位置 一个单词紧随其后。跟踪最大的 单个重复发生的次数以及重复哪个单词。打印 最大重复次数,否则打印一条消息,说没有 这个词被重复了。例如,如果输入是 现在,棕色母牛现在的输出结果应该如何显示该单词出现了三次。

我的代码如下:

#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main()
{
string pre_word, word, max_repeate_word;
int repeate_times = 0; max_repeate_times = 0;
while (cin >> word) {
    if (word == pre_word) {
        ++repeat_times;
    }
    else {
        repeat_times = 1;
        pre_word = word;
    }

    if (max_repeat_times < repeat_times) {
        max_repeat_times = repeat_times;
        max_repeat_word = pre_word;
    }
}

if (max_repeat_times <= 1) {
    cout << "no word was repeated" << endl;
}
else {
    cout << "the word '" << max_repeat_word << "' occurred " << max_repeat_times << " times" << endl;
}
}

我的代码有什么问题吗?输入任何字符串时,程序均不显示任何输出。

1 个答案:

答案 0 :(得分:-1)

while (cin >> word)

仅在EOF时停止,您需要添加停止条件。 示例:

while (cin >> word && word != "")