如何在C中模拟程序的键盘输入

use*_*885 2 c iostream ipc stdio

我有一个程序的二进制文件,等待使用scanf输入.我需要编写一个能够模拟键盘输入的C代码.即关闭该二进制文件的stdin指针,并将其重命名为文件.我用过这段代码

int main()
{
        FILE *fin;
        int result;
        char string[80];
        close(0);

        fin = fopen("text", "r");

        if(NULL == fin)
        {
                printf("Unable to open file.");
                return 0;
        }
        dup(fin);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我发现每个程序都有自己的stdin指针.有没有办法让我从另一个C程序模拟一个二进制文件的键盘输入?

Kor*_*icz 5

它不是你正在寻找的程序,它是你的shell的功能:

 program < input.txt
Run Code Online (Sandbox Code Playgroud)

这样你就可以将input.txt作为stdin推送到程序中.

如果你想要一个程序,那么你可以运行一个程序并将它的输出重新路由到其他程序输入.

  • 先生,你是个天才……我是个白痴!我已经这样做了大约一百万次将输出重定向到文件,我从来没有想过我可以对输入做同样的事情...谢谢! (2认同)