gpt4 book ai didi

c++ - 控制流 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:30 24 4
gpt4 key购买 nike

int main()
{
char a[101];
cout << "str a:";
gets(a);
return 0;
}

这就是为什么 gets(a);cout<<"str a:"; 之前执行?

使用的编译器:digital mars和GNN_gcc。

最佳答案

Here why gets(a); is executing before cout<<"str a:";?

gets()cout<<"str a:"; 之前实际上并未执行, 你刚刚错过了 flush()强制在屏幕上打印的输出流:

cout<<"str a:" << flush;

应该解决这个问题。

@Slava's answer 中所述流式输出被缓冲并通常与 std::cin 同步.

只有当缓冲区已满或被强制使用 flush() 时,输出才会真正放在设备上功能。

gets()是一个(同时弃用的)C 函数,不能保证自动同步,除非您调用

std::ios::sync_with_stdio();

曾经在你的main()功能(请参阅 documentation)。


旁注:

而不是 gets() ,已被 c++14 标准弃用,您应该使用

std::string a; // Much more convenient than char a[100];
std::getline(std::cin,a);

关于c++ - 控制流 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41965146/

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