C-更改标准输入并等待用户输入

C-更改标准输入并等待用户输入,c,C,我有以下代码: #include <stdio.h> int main() { char c = 0; fclose(stdin); stdin = fopen("newin", "r"); if(stdin != NULLL) { scanf("%c", &c); printf("%d", c); } else printf("Error"); } #包括 int main() { 字符c=

我有以下代码:

#include <stdio.h>

int main()
{
   char c = 0;
   fclose(stdin);
   stdin = fopen("newin", "r");
   if(stdin != NULLL)
   {
      scanf("%c", &c);
      printf("%d", c);
   }
   else
       printf("Error");
}
#包括
int main()
{
字符c=0;
fclose(stdin);
stdin=fopen(“newin”、“r”);
if(stdin!=NULLL)
{
scanf(“%c”、&c);
printf(“%d”,c);
}
其他的
printf(“错误”);
}
我希望我的程序等待stdin文件中的更改。我将其创建为空,但它返回0

如果一个put像一个“a”字符,它会像它应该的那样打印97

我如何让scanf等待文件中的更改,就像它在等待我在终端窗口中写入一样

我如何让scanf等待文件中的更改,就像它在等待我在终端窗口中写入一样

你不能


来自
stdin
的输入和来自磁盘的文件的处理方式不同。当您从文件中读取时,必须先将文件中的所有内容整理好,然后才能打开文件进行读取。

为什么要关闭stdin?您可能想查看以下答案:。您可能还想检查fclose的返回代码。您想在文件中写入,然后程序读取您写入的内容吗?有点像你在终点站做的那样?@GabrielPellegrino是的,这是我的想法有什么办法可以模拟吗?就像我想让一个进程运行,另一个进程为它提供输入。当然。您可以分叉子进程并在它们之间使用管道。请参阅。如果您将程序放入读取文件的循环中,并使其在发现信号时动作,并且您能够在存档中写入。我不明白为什么使用管道不是一个通用解决方案。因为您必须创建父进程和子进程,我只想创建一个进程,然后从中发送和接收信息,通过另一个进程,可以运行也可以不运行。。。