我有一个程序,通过scanf从标准输入流stdin
读取并打印到stdout
。我想通过另一个程序发送输入。我该如何解决这个问题?
类似的东西:
echo hi | ./prog
但目前的工作并不像预期的那样。 prog目前看起来像
#include <stdio.h>
int main()
{
char buf[200];
scanf("%s",buf);
printf("%s",buf);
}
感谢您的帮助。
答案 0 :(得分:3)
由于%s
忽略前导空格并在第一个后续空格处停止,因此您可能希望在打印中包含换行符:
#include <stdio.h>
int main(void)
{
char buf[200];
scanf("%199s", buf);
printf("%s\n",buf);
return 0;
}
这将读取一个单词&#39;标准输入最多199个字符,并将其写入标准输出。
答案 1 :(得分:2)
该计划为我工作.....
$ cat >prog.c
#inlcude <stdio.h>
int main()
{
char buf[200];
scanf("%s",buf);
printf("%s",buf);
}
$ make prog
cc prog.c -o prog
$ echo hi | ./prog
hi