我有一个等待scanf()
输入的c进程。
我想将其结果保存到*.txt
文件。
到终端(linux)
./process > out.txt
预先在scanf中写入终端的方式是什么?
感谢。
答案 0 :(得分:3)
对于以下程序,您可以输入为。
#include <stdio.h>
int main ()
{
int i = 0;
scanf("%d", &i);
printf("Value of i = %d\n", i);
return 0;
}
$ gcc -o exe file.c
$ echo 2 | ./exe
Value of i = 2
|
或pipeline
将两个命令连接在一起,以便一个程序的输出成为下一个程序的输入。
更新:
如果你想一起阅读字符串,字符串和整数
int i = 0;
char str[20];
scanf("%d%s", &i, str);
printf("Value of i = %d\nValue of str = %s\n", i, str);
$ echo "45 John" | ./exe # Ensure your input sequence is correct #
Value of i = 45
Value of str = John
用于将输出保存到文件output.txt
$ echo "45 John" | ./exe > output.txt
$ cat output.txt
Value of i = 45
Value of str = John
答案 1 :(得分:2)
您可以提供如下输入。
一个是管道,
cat filename | ./process > sample.txt
否则你可以像这样给出
./process < filename > sample.txt
否则
echo "1" | ./process > sample.txt
在该文件中,您只能放置整数值,并给出这样的结果。
答案 2 :(得分:0)
这样做的一种方法是将scanf()输入写入文本文件。您的输入文本文件应根据scanf()顺序正确格式化。然后将输入文本文件重定向到程序二进制文件,并将程序二进制文件的shell输出重定向到输出文件。
使用以下命令执行二进制文件。
./main < input.txt > output.txt
例如:
如果你的main.c看起来如下
scanf("%s\n", &my_string);
scanf("%d\n", &my_int);
然后你应该准备一个input.txt,如下所示
Hello
31
答案 3 :(得分:0)
#include <stdio.h>
int main ()
{
int i = 0;
printf("Enter value of i:");
scanf("%d", &i);
printf("Value of i = %d\n", i);
return 0;
}
如果我想给出i的动态输入值。怎么给?
在下面的代码中,静态值由echo提供。
$ gcc -o exe file.c
$ echo 2 | ./exe
Value of i = 2
它应该在文件中显示printf语句,并且从该文件中我应该能够输入而不是终端。