c++ - 学习 C++,我不知道我在这里做错了什么

标签 c++

我目前正在学习 C++,我被要求使用 while 函数编写代码。代码运行,但它不打印 Dear ... 行。我在这里做错了什么?

    cout << "Hello! Please write your recipient and the letter, then press enter:\n";
string name{ "" };
string current{ "" };
string letter{ "" };
cin >> name;
while (cin >> current){
    if (current != name){
        letter += " " + current;
    }
}
cout << "Dear " << name << "," << letter;
keep_window_open();
return 0;

最佳答案

要输出结果,您必须将 cin >> current 设置为 false。为此,使用 Ctrl-D 将文件结尾 (EOF) 发送到 cin,这将导致循环停止执行。

编辑:显然在 Windows 中,序列是 Ctrl-Z

编辑:如@pdw 所述,cout 需要刷新。这通常在有换行符时完成,但由于您没有换行符,您可以使用 std::flushstd::endl:

cout << "Dear " << name << "." << letter << std::flush;

关于c++ - 学习 C++,我不知道我在这里做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24759965/

相关文章:

c++ - 跟踪第 3 方库中的段错误:cv::ImageCodecInitializer 析构函数崩溃

C++:如何在类和基元上使用模板?

c++ - 为什么这个 Factorial 函数对大数返回零

c++ - 选择了错误的功能

c++ - 我们是否需要一个可访问的复制构造函数来在 C++98/03 中进行值初始化?

c++ - 二进制数。检查以确保二进制输入是二进制时出错

c++ - 具有派生类的自定义容器的迭代器

c++ - 产量 boost::asio::coroutine 直到任务完成

c++ - 将数据从txt文件读入 vector

python - 从数量小于或等于N的数字列表中最小化或找到n个理想子和