如何使用新行在C ++中输出缓冲区

时间:2017-01-19 00:07:26

标签: 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;
}

1 个答案:

答案 0 :(得分:-1)

注释行将永远无法工作,因为它永远不会被调用。你之前有一个无限循环for(;;)