我有一些代碼需要在段落中並在每個句子之後開始一個新行。如何在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