#include <iostream>
#include <string>
using namespace std;
void doOneSet();
int main() {
srand(time(0));
doOneSet();
return 0;
}
void doOneSet() {
int answer;
for (int i = 0; i < 5; i++) {
cout << (rand() % 100) << " + " << (rand() % 101) << ": ";
cin >> answer;
}
}
以下代码挂起,从不输出cout
语句,也没有得到cin
语句。当我结束cin
语句如下,它工作正常,但我不知道为什么。我希望输入在同一行,而不是在下一行。
cout << (rand() % 100) << " + " << (rand() % 101) << ": " << endl;
我以前很容易做到这一点,但由于某些原因我现在遇到问题,不知道为什么。提前谢谢!
答案 0 :(得分:1)
我知道这是旧的,但对于未来的搜索者,我只是遇到了这个问题。 我正在设置一台新 PC 并安装了 VS2019 然后想起我也需要安装 VS2013 以支持旧版构建。一个简单的 Hello World 应用程序会挂在 cout 上。
我将 VS2019 安装重新运行为修复,并且在重新启动后,cout 的行为符合预期。
答案 1 :(得分:-1)
我无法在g ++ 4.9.4中重现您的行为,但我有一个想法。您可以尝试使用 fflush 功能刷新流的缓冲区。这是代码:
#include <stdio.h>
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
void doOneSet();
int main() {
srand(time(0));
doOneSet();
return 0;
}
void doOneSet() {
int answer;
for (int i = 0; i < 5; i++) {
cout << (rand() % 100) << " + " << (rand() % 101) << ": ";
fflush(stdout);
cin >> answer;
}
}