Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++睡眠函数不按预期工作 因此,我在贸易中利用空闲时间开发Web学习C++的任务,所以我对代码完全不被忽视。 #include <iostream> #include <windows.h> using namespace std; /* * */ int main(int argc, char** argv) { string response; cout << "Would you like to buy some bread? : " << flush; getline(cin, response); if (response == "yes" || response == "y" || response == "Yes" || response == "Y") { cout << "\nYou have successfully bought some bread\nThanks." << endl; Sleep(2000); return 0; } else if (response == "no" || response == "n" || response == "No" || response == "N") { cout << "\nYou didn't buy some bread.\n" << endl; } string second_response; cout << "Would you like to go back and buy some bread? : " << flush; getline(cin, second_response); if (second_response == "yes" || second_response == "y" || second_response == "Yes" || second_response == "Y") { cout << "\nYou have successfully bought some bread 2nd time round"; Sleep(2000); } else { cout << "\nMaybe next time?"; Sleep(2000); } return 0; }_C++ - Fatal编程技术网

C++睡眠函数不按预期工作 因此,我在贸易中利用空闲时间开发Web学习C++的任务,所以我对代码完全不被忽视。 #include <iostream> #include <windows.h> using namespace std; /* * */ int main(int argc, char** argv) { string response; cout << "Would you like to buy some bread? : " << flush; getline(cin, response); if (response == "yes" || response == "y" || response == "Yes" || response == "Y") { cout << "\nYou have successfully bought some bread\nThanks." << endl; Sleep(2000); return 0; } else if (response == "no" || response == "n" || response == "No" || response == "N") { cout << "\nYou didn't buy some bread.\n" << endl; } string second_response; cout << "Would you like to go back and buy some bread? : " << flush; getline(cin, second_response); if (second_response == "yes" || second_response == "y" || second_response == "Yes" || second_response == "Y") { cout << "\nYou have successfully bought some bread 2nd time round"; Sleep(2000); } else { cout << "\nMaybe next time?"; Sleep(2000); } return 0; }

C++睡眠函数不按预期工作 因此,我在贸易中利用空闲时间开发Web学习C++的任务,所以我对代码完全不被忽视。 #include <iostream> #include <windows.h> using namespace std; /* * */ int main(int argc, char** argv) { string response; cout << "Would you like to buy some bread? : " << flush; getline(cin, response); if (response == "yes" || response == "y" || response == "Yes" || response == "Y") { cout << "\nYou have successfully bought some bread\nThanks." << endl; Sleep(2000); return 0; } else if (response == "no" || response == "n" || response == "No" || response == "N") { cout << "\nYou didn't buy some bread.\n" << endl; } string second_response; cout << "Would you like to go back and buy some bread? : " << flush; getline(cin, second_response); if (second_response == "yes" || second_response == "y" || second_response == "Yes" || second_response == "Y") { cout << "\nYou have successfully bought some bread 2nd time round"; Sleep(2000); } else { cout << "\nMaybe next time?"; Sleep(2000); } return 0; },c++,C++,正如你所见,它只是问依赖于他们答案的人是否愿意买面包,我不是很有想象力 问题是,sleep函数似乎在工作,但在字符串second_响应部分中不正确,发生的情况是它等待2000毫秒,然后输出文本,而实际上是相反的 我一直在谷歌上寻找答案,但我想最好还是来这里,这样我就可以准确地说出哪里出了问题 谢谢大家 您可能成为缓冲的牺牲品 在向标准输出写入字符的程序和屏幕上实际显示的文本之间,存在着不同的处理层,其中一些处理层试图通过组合I/O操作来优化系统的总体吞吐量,直到有一定数量的数据可用。例如,在超出

正如你所见,它只是问依赖于他们答案的人是否愿意买面包,我不是很有想象力

问题是,sleep函数似乎在工作,但在字符串second_响应部分中不正确,发生的情况是它等待2000毫秒,然后输出文本,而实际上是相反的

我一直在谷歌上寻找答案,但我想最好还是来这里,这样我就可以准确地说出哪里出了问题


谢谢大家

您可能成为缓冲的牺牲品

在向标准输出写入字符的程序和屏幕上实际显示的文本之间,存在着不同的处理层,其中一些处理层试图通过组合I/O操作来优化系统的总体吞吐量,直到有一定数量的数据可用。例如,在超出缓冲区大小或遇到换行符之前,通常不会打印字符

请注意,您的问题以换行符开始,但不以换行符结束。您可能看到的是,程序写入字符,终端驱动程序缓冲字符,然后程序休眠,当程序退出时,操作系统自动刷新所有流,以便最终看到前一行输出


有多种方法可以强制输出立即出现;使用换行只是其中之一。查找“缓冲”和“cout”,您将找到更多的解决方案。

您可能会成为缓冲的受害者

在向标准输出写入字符的程序和屏幕上实际显示的文本之间,存在着不同的处理层,其中一些处理层试图通过组合I/O操作来优化系统的总体吞吐量,直到有一定数量的数据可用。例如,在超出缓冲区大小或遇到换行符之前,通常不会打印字符

请注意,您的问题以换行符开始,但不以换行符结束。您可能看到的是,程序写入字符,终端驱动程序缓冲字符,然后程序休眠,当程序退出时,操作系统自动刷新所有流,以便最终看到前一行输出


有多种方法可以强制输出立即出现;使用换行只是其中之一。查找“buffering”和“cout”,您将找到更多的解决方案。

好的,因此在阅读本文之后,我决定在每秒钟的响应之后添加新的换行符,所有这些似乎都正常工作。编辑:是时候读一下缓冲/cout properlyOK了,所以在读了这篇文章之后,我决定在每一秒的_响应之后加上新的换行符,看起来一切都正常工作。编辑:正确读取缓冲/输出的时间