C++ C++;cout不适用于该方法
我正在尝试实现一个隐藏单词查找游戏,它从文本文件中读取拼图,然后尝试找出隐藏单词的位置。然而,当我尝试进行上下搜索时,屏幕上没有显示任何内容,即使我编写了一个独立于该方法的简单cout命令。下面是代码:(输出为nothing btw)C++ C++;cout不适用于该方法,c++,cout,C++,Cout,我正在尝试实现一个隐藏单词查找游戏,它从文本文件中读取拼图,然后尝试找出隐藏单词的位置。然而,当我尝试进行上下搜索时,屏幕上没有显示任何内容,即使我编写了一个独立于该方法的简单cout命令。下面是代码:(输出为nothing btw) boolWordPuzzle::searchTopToBottom(字符串字){ cout您应该在cout的末尾添加endl,如下所示: cout要刷新输出缓冲区,只需使用std::flush: std::cout << "my string to b
boolWordPuzzle::searchTopToBottom(字符串字){
cout您应该在cout
的末尾添加endl
,如下所示:
cout要刷新输出缓冲区,只需使用std::flush
:
std::cout << "my string to be printed" << std::flush;
或
std::记不起输出已缓冲,并且输出不会立即发生。请使用例如std::flush
或std::endl
操纵器来刷新缓冲区。请注意预览窗口,在发布代码时不要使用选项卡(这次为您修复了它)。您使用的是什么操作系统?我猜是Linux Mint 15.4。“它将等待您编写回车符来显示行。”不!cout
在写入终端时通常会进行行缓冲(重定向到文件并tail
,您会看到缓冲区刷新的频率较低),但这肯定不是标准所要求的。使用'\n'
编写换行符,使用std::flush
进行刷新。std::endl
同时执行这两项操作,但它经常被误解和误用,因此我建议完全避免使用它。我添加了endl语句,但只显示asdasd和qweqwe字符串当(i
?两个“qweqw”时,程序是否结束或卡在中
显示字符串?std::cout
不保证是行缓冲的。如果要刷新,请使用std::flush
。确实很简单。@BoBTFish是的,一般来说你是对的。但至少在linux中,当写入tty时,这是行缓冲的。在执行std::cin时,输出似乎会自动刷新,所以至少至少在linux上,我的答案并不需要std::flush。
std::cout << "my string to be printed" << std::flush;
std::cout << "my string to be printed\n";
std::cout << "my string to be printed" << '\n';