C ++ cout不适用于该方法

时间:2013-10-14 09:45:22

标签: c++ cout

我正在尝试实现隐藏的单词查找器游戏,它从文本文件中读取拼图,然后尝试找出隐藏单词的位置。但是,当我尝试进行顶部顶部搜索时,即使我编写一个独立于该方法的简单cout命令,屏幕上也不会显示任何内容。这是代码:(输出什么都没有)

bool WordPuzzle::searchTopToBottom(string word){
  cout << "asdasda";
  string fullWord = "";
  int i = 0;
  int j = 0;
  int index = 0;
  int count;
  bool a = false;
  while (i < numOfColumn){
    while (j < numOfRow){
      if (word[index] == puzzle[i][j]){
        i++;
        index++;
        count++;
        fullWord += word[index];
        if (count == word.size()){
          a = true;
          break;
        }
      }
      else
        j++;
    }
  }
  if (a){
    cout << fullWord;
    return true;
  }
  else{
    cout << "not found";
    return false;
  }
}


int main (){
  cout << "qweqw";
  WordPuzzle w ("puzzle.txt");
  cout << "qweqw";
  w.searchTopToBottom("DEMIR");
  return 0;
}

2 个答案:

答案 0 :(得分:2)

您应该在endl的末尾添加cout,如下所示: cout << variable << endl; 标准输出是缓冲的,它将一直等到你写一个回车来显示该行。 endl添加此回车。

答案 1 :(得分:1)

要刷新输出缓冲区,只需使用std::flush

std::cout << "my string to be printed" << std::flush;

当你想要一个换行符时,只需将'\n'写到一行的末尾:

std::cout << "my string to be printed\n";

std::cout << "my string to be printed" << '\n';

取决于同样会刷新输出缓冲区的实现(至少在linux上写入终端时)。

一般而言:

  • 在需要换行符时使用'\n'
  • 当您想要刷新输出时使用std::flush
  • 当您想要换行并使用刷新输出时使用std::endl