我有一些代码需要在段落中并在每个句子之后开始一个新行。如何在C++中用新行输出一个缓冲区
我想用新行缓冲终端中的输出,但添加“std :: cout < < endl;”循环之外似乎没有工作。如果将输入键入输入端,则可以帮助将输入与输出分离。
我已经注释掉了我希望工作的代码,但是没有。
#include <iostream>
#include <string>
using namespace std;
int main() {
// std::cout << std::endl;
for (;;) {
string line;
getline(std::cin, line);
if (!cin) {
break;
}
for (unsigned int i = 0; i < line.length(); ++i) {
const string text = line.substr(i, 1);
if (text == "." || text == "?" || text == "!") {
std::cout << text;
std::cout << std::endl;
}else{
std::cout << text;
}
}
}
// std::cout << std::endl;
return 0;
}
[刷新cout之前读取输入使用cin ..为什么?]可能的重复(http://stackoverflow.com/questions/2704752/flushing-of-cout-prior-to-reading-input-using- cin-why) – Barmar
在每次新建一行新行之前,我都尝试使用类型刷新“cout”,但似乎并未允许首先创建新行。 – Vyff
@CodingPig几乎是正确的。如果你在输入之前需要额外的一行,我认为你所需要做的就是将注释掉的一行移动一个大括号。 – user4581301