C++程序的睡眠或时间延迟

sleep or time delay for C++ Program

本文关键字:时间延迟 程序 C++      更新时间:2024-04-29

所以我把Paperboy的这个衍生游戏作为一个课堂项目来写。如果我愿意的话,我可以说我完成了,然后把它交上来,但我希望它有一种专业的感觉。我的游戏由不同的模式组成:简单和困难。然而,我还没有实现硬模式。

不管怎样,这是我的代码

void easyMode() {
string playerName;
int numNewspapers, numDelivered = 0, numMissed = 0, score = 0;
cout << "Enter Your Player Name: ";
cin >> playerName;
cout << "nEnter How Many Newspapers That Need To Be Delivered: ";
cin >> numNewspapers;
cout << "nnYou have " << numNewspapers << " newspapers to deliver!nn";
cout << "Time To Deliver !!nn";
cout << "*===================================*nn";
//cout << string(50, 'n');
while (numDelivered < numNewspapers) {
int outcome = RandomNumberEasy();
cout << "*===================================*nn";
cout << "Delivering Newspaper...nn";

//           Game Sequence
//*===================================*
//      Delivered Successfully
//*===================================*
if (outcome <= 3 || outcome > 7) {
cout << "You Successfully Delivered The Newspaper.nn";
numDelivered++;
score = score + 15;
cout << "Your score is " << score << " points!nn";
}
//          Delivery Failed
//*===================================*
else {
cout << "The Neighbor's Dog Chased You. Delivered Paper Didn't Quite Land On Stepnn";
numDelivered++;
numMissed++;
score = score + 5;
cout << "Your score is " << score << " points!n";
}
cout << "n";
sleep(1);
}
//              END GAME
//*===================================*
if (numDelivered == numNewspapers) {
int SuccDeliver = numDelivered - numMissed;
cout << "*===================================*nn";
cout << "Congratulations, " << playerName << "!nn"; 
cout << "Your Final Score Is: " << score; 
cout << "nnYou missed " << numMissed << " Newspapers And Delivered " << SuccDeliver << " Newspapersnn";
}
}

正如你所看到的,我确实有睡眠功能,但当我运行程序时,它会等待很长时间,每次迭代都会同时输出。我希望它在每次迭代之间等待,但我似乎无法让它发挥作用。

感谢您的帮助!

问题似乎是输出缓冲区没有被刷新。一种方法是使用cout << endl而不是cout << "n"。主要,这部分:

cout << "n";
sleep(1);

应该是这样的:

cout << endl;
sleep(1);

这应该能解决问题!