gpt4 book ai didi

c - 将标准输入重定向到标准输出

转载 作者:行者123 更新时间:2023-12-05 01:35:16 24 4
gpt4 key购买 nike

假设我有一个简单的 C 程序,可以将 2 个数字相加:

#include <stdio.h>

int main(void) {
int a, b;
printf("Enter a: "); scanf("%d", &a);
printf("Enter b: "); scanf("%d", &b);

printf("a + b = %d\n", a + b);
return 0;
}

我不是在每次执行时都输入终端,而是将 ab 的值输入到一个文件中:

// input.txt
10
20

然后我将 stdin 重定向到这个文件:

./a.out < input.txt

程序可以运行,但输出有点乱:

Enter a: Enter b: a + b = 30

有没有办法将 stdin 重定向到 stdout,这样输出就好像用户手动输入了值一样,即:

Enter a: 10
Enter b: 20
a + b = 30

最佳答案

您可以为此使用 expect。 Expect 是一个用于自动化交互式命令行程序的工具。以下是如何自动输入这些值:

#!/usr/bin/expect
set timeout 20

spawn "./a.out"

expect "Enter a: " { send "10\r" }
expect "Enter b: " { send "20\r" }

interact

这会产生如下输出:

$ ./expect     
spawn ./test
Enter a: 10
Enter b: 20
a + b = 30

还有更多例子here .

关于c - 将标准输入重定向到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63095900/

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