没有键盘我可以访问stdin吗?

我用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毫无意义)

上一篇:c – Linux的GetAsyncKeyState等价于什么?


下一篇:Java / AWT / Swing:如何区分按下的回车键或返回键