控制程序的输出 我正在编写一个代码来输出Fibonacci系列的C++,这很简单,但是因为我是新手,所以我在考虑控制< /P>的方法。

控制程序的输出 我正在编写一个代码来输出Fibonacci系列的C++,这很简单,但是因为我是新手,所以我在考虑控制< /P>的方法。,c++,runtime,C++,Runtime,我想知道是否有一种方法可以在不包括处理时间的情况下控制输出的时间(例如,如果处理我的输入需要0.0005秒,我希望它在1秒而不是1.0005秒内重复输出) 我还想知道是否有一种方法可以让它输出(比如1),然后让它等待我按enter键,这样它就可以输出第二部分(2) 另外,对于如何控制输出的其他建议,我将不胜感激。如果您使用的是Windows,一种快速暂停的方法是调用系统(“暂停”)

我想知道是否有一种方法可以在不包括处理时间的情况下控制输出的时间(例如,如果处理我的输入需要0.0005秒,我希望它在1秒而不是1.0005秒内重复输出)

我还想知道是否有一种方法可以让它输出(比如1),然后让它等待我按enter键,这样它就可以输出第二部分(2)


另外,对于如何控制输出的其他建议,我将不胜感激。

如果您使用的是Windows,一种快速暂停的方法是调用
系统(“暂停”)
使用std名称空间暂停的方法如下:

cout << "Press Enter to continue . . ." << endl;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
序列中的下一个数字在等待之前计算并准备好打印,因此计算时间不会给定时输出增加任何延迟


如果希望程序在后台工作时继续以固定速率输出,则需要。您可以在一个线程中将结果添加到队列中,而另一个线程每秒检查一次打印结果。

这是模糊的平台特定性。我认为您要求的是阻止程序以等待您的输入。是吗?+1用于提及线程-我本来打算这么做,直到我注意到你已经这么做了。
#include <ctime>
#include <limits>
#include <iostream>

void pause() {
    std::cout << "Press Enter to continue . . ." << std::endl;
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}

int main() {
    clock_t next = clock();
    int prev1, prev2, cur = 0;

    for (int i = 0; i < 47; ++i) {
        if (i < 2) cur = i;
        else cur = prev1 + prev2;
        prev2 = prev1;
        prev1 = cur;

        while (next > clock());
        std::cout << (i+1) << ": " << cur << std::endl;
        next += CLOCKS_PER_SEC;
    }

    pause();
    return 0;
}