gpt4 book ai didi

c++ - 重方法调用 block cout

转载 作者:行者123 更新时间:2023-11-30 00:54:21 27 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why does my cout output not appear immediately?

我有一个非常繁重的方法(它检查一个数是否为质数 - Euler 3),它会阻塞 cout
这怎么可能?这是我的代码:

int main(int argc, char * argv[]) {
cout << "-----------------------------------------------------------" << endl;
cout << "isPrime(3): " << ((isPrime(3)) ? "true" : "false") << endl;
cout << "isPrime(10): " << (isPrime(10) ? "true" : "false") << endl;
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "isPrime(600851475143): " << (isPrime(600851475143.0) ? "true" : "false") << endl; // This one takes very long to complete
cout << "-----------------------------------------------------------";
}

像这样,它输出:

[Session started at 2013-01-19 13:50:12 +0100.]
-----------------------------------------------------------
isPrime(3): false
isPrime(10): false

然后停止(几分钟)。 (isPrime() 坏了,我知道!)如果我注释掉带有 isPrime(600851475143) 的行,它当然会在不到一秒的时间内输出除了注释行的输出之外的所有内容。

一个非常繁重的方法调用怎么可能阻塞应该已经写入 cout 的输出?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com