我用gcc编译了下面的代码
int main() {
int a = 0;
fprintf( stdin, "%d", 123 );
fscanf( stdin, "%d", &a );
printf( "%d\n", a );
return 0;
}
在我的期望中,程序应该直接执行(即程序从不暂停并等待用户输入)。但它仍然停止,等待我的输入。
我想知道当我尝试向 stdin 写入一些内容时会发生什么,以及如何修改这段代码并且它可以直接执行?
最佳答案
stdin
仅用于输入,stdout
用于输出。 (4566976 的回答向您展示了当您尝试输出到 stdin
时会发生什么)例如参见 glibc documentation on standard streams
(简而言之,写入 stdin
完全没有意义)
关于我可以在没有键盘的情况下访问标准输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32547384/