Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学习C++;我不知道';我不知道我做错了什么 我现在正在学习C++,我被要求用while函数编写代码。代码运行,但它不会打印行亲爱的…。我做错了什么 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; cout>name; 而(cin>>当前){ 如果(当前!=名称){ 字母+=“”+电流; } } cout_C++ - Fatal编程技术网 name; 而(cin>>当前){ 如果(当前!=名称){ 字母+=“”+电流; } } cout,c++,C++" /> name; 而(cin>>当前){ 如果(当前!=名称){ 字母+=“”+电流; } } cout,c++,C++" />

学习C++;我不知道';我不知道我做错了什么 我现在正在学习C++,我被要求用while函数编写代码。代码运行,但它不会打印行亲爱的…。我做错了什么 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; cout>name; 而(cin>>当前){ 如果(当前!=名称){ 字母+=“”+电流; } } cout

学习C++;我不知道';我不知道我做错了什么 我现在正在学习C++,我被要求用while函数编写代码。代码运行,但它不会打印行亲爱的…。我做错了什么 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; cout>name; 而(cin>>当前){ 如果(当前!=名称){ 字母+=“”+电流; } } cout,c++,C++,要输出结果,必须将cin>>设置为当前值false。为此,请使用Ctrl-D将文件结尾(EOF)发送到cin,这将导致循环停止执行 编辑:显然在Windows中,顺序是Ctrl-Z 编辑:正如@pdw所指出的,cout将需要刷新。这通常在有换行符时完成,但由于没有换行符,因此可以使用std::flush或std::endl: cout << "Dear " << name << "." << letter << std::flush;

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

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

编辑:正如@pdw所指出的,
cout
将需要刷新。这通常在有换行符时完成,但由于没有换行符,因此可以使用
std::flush
std::endl

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

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

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

编辑:正如@pdw所指出的,
cout
将需要刷新。这通常在有换行符时完成,但由于没有换行符,因此可以使用
std::flush
std::endl

cout << "Dear " << name << "." << letter << std::flush;
cout
要使此循环中断,您需要将流结束标记放入
std::cin
。在Windows上键入
Ctrl-Z
,或在类似Unix的系统上键入
Ctrl-D
,以实现此目的


要使此循环中断,您需要将流结束标记放入
std::cin
。在Windows上键入
Ctrl-Z
,或在类似Unix的系统上键入
Ctrl-D
,以实现此目的。

这里有一个无限循环<代码>while(cin>>当前)
将始终计算为true,并将持续等待用户输入。这就是为什么您永远无法到达代码的最后一行。您只需在提示符中的每个输入上不断为current创建新值,然后将它们添加到字母中。我建议不要使用while循环,或者设置一些转义输入。例如,如果用户输入done,则使用
break退出循环

这里有一个无限循环<代码>while(cin>>当前)
将始终计算为true,并将持续等待用户输入。这就是为什么您永远无法到达代码的最后一行。您只需在提示符中的每个输入上不断为current创建新值,然后将它们添加到字母中。我建议不要使用while循环,或者设置一些转义输入。例如,如果用户输入done,则使用
break退出循环

while(cin>>当前)
您希望您的
while
循环条件何时评估为
false
?它甚至不会输出
您好!请写下您的收件人和信件,然后按enter键:
?@clcto它确实输出了第一行,只是没有输出结果。请查看输出使用
std::endl
而不是
“\n”
@user2023328'它只是没有输出结果'您被困在了循环中,那么您期望得到什么?
而(cin>>当前)
您希望您的
while
循环条件何时计算为
false
?它甚至不会输出
您好!请写下您的收件人和信件,然后按enter键:
?@clcto它会输出第一行,但不会输出结果。请看输出使用
std::endl
,而不是
“\n”
@user2023328'它只是不会输出结果'您被困在循环中,那么您希望得到什么?并且会有行缓冲,所以新行需要在输出之前添加“亲爱的…”行。@pdw,我很确定
cout
会在程序退出之前清除它的缓冲区。他在代码末尾有一个
keep_window_open()
调用,所以他的程序可能不会立即退出。cout是行缓冲的,所以新行需要添加“亲爱的…”输出前的行。@pdw,我很确定
cout
会在程序退出前清除缓冲区。他在代码末尾有一个
keep\u window\u open()
调用,所以他的程序可能不会立即退出。