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

问题描述 投票:1回答:1

所以我将这个Paperpaper衍生游戏作为一个班级项目编写。如果我愿意,我可以说我已经完成并上交了,但是我希望它具有专业的风格。我的游戏包含不同的模式:简单和困难。但是我还没有实现硬模式。

无论如何,这是我的代码

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 << "\n\nYou have " << numNewspapers << " newspapers to deliver!\n\n";
    cout << "Time To Deliver !!\n\n";
    cout << "*===================================*\n\n";

    //cout << string(50, '\n');

    while (numDelivered < numNewspapers) {

        int outcome = RandomNumberEasy();

        cout << "*===================================*\n\n";
        cout << "Delivering Newspaper...\n\n";


        //           Game Sequence
        //*===================================*

        //      Delivered Successfully
        //*===================================*
        if (outcome <= 3 || outcome > 7) {

            cout << "You Successfully Delivered The Newspaper.\n\n";

            numDelivered++;

            score = score + 15;

            cout << "Your score is " << score << " points!\n\n";
        }

        //          Delivery Failed
        //*===================================*
        else {

            cout << "The Neighbor's Dog Chased You. Delivered Paper Didn't Quite Land On Step\n\n";

            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 << "*===================================*\n\n";
            cout << "Congratulations, " << playerName << "!\n\n"; 
            cout << "Your Final Score Is: " << score; 
            cout << "\n\nYou missed " << numMissed << " Newspapers And Delivered " << SuccDeliver << " Newspapers\n\n";

        }

}

如您所见,我的确有睡眠功能,但是当我运行程序时,它会等待很长时间,并且每次迭代都输出一次。我希望它在每次迭代之间都等待,但似乎无法正常工作。

感谢您的任何帮助!

c++ sleep
1个回答
1
投票

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

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

应该是这样:

cout << endl;
sleep(1);

这应该解决它!

© www.soinside.com 2019 - 2024. All rights reserved.