出于某种原因,我无法让循环工作。 它不会打印任何东西。这是代码:
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main()
{
string concatenated;
for (string buffer; cin >> buffer; concatenated += buffer);
cout << "The concatenated string is " << concatenated << endl;
return 0;
}
答案 0 :(得分:3)
问题是for-loop
不会自动退出。它不断循环并等待下一个输入。这就是为什么你没有得到任何外包的原因。
您应该在Windows上输入 Control + Z ,在Unix平台上输入 Control + D 以输入EOF字符。 请参阅this了解详情。
代码很好。 See it working here
以下是我当地的输出。使用的代码与已发布和可用here相同
答案 1 :(得分:1)
您需要一些东西来阻止循环等待更多输入..您可以使用特殊字符串来执行此操作..
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main()
{
string concatenated;
for (string buffer; cin >> buffer && buffer!="STOP"; concatenated += buffer);
cout << "The concatenated string is " << concatenated << endl;
return 0;
}