问题描述
int main(int argc,const char * argv[]) {
string input;
getline(cin,input);
for (int i = 0; i < 3; i++)
cout << input << endl;
return 0;
}
输入:
Hello,World! (with a new line in the end)
输出:
Hello,World!
Hello,World!
何时应该:
Hello,World!
Hello,World!
解决方法
std::getline()
包含了换行符,它不属于返回的std::string
值的一部分。
std::endl
输出单个换行符,然后刷新输出。这就是为什么您得到看到的输出的原因:
Hello,World!<line break>
Hello,World!<line break>
因此,只需编写两个换行符即可,例如:
std::cout << input << std::endl << std::endl;
或者:
std::cout << input << '\n' << std::endl;
或者:
std::cout << input << "\n\n" << std::flush;
然后您将获得所需的输出:
Hello,World!<line break>
<line break>
Hello,World!<line break>
<line break>