C - 直接从终端扫描值

C - scanf value directly from terminal

我有一个等待 scanf() 输入的 c 进程。

我想将其结果保存到 *.txt 文件中。 到航站楼 (linux)

./process > out.txt

终端中scanf prehand的写法是什么?

谢谢。

您可以像下面这样输入。

一个是滚边,

 cat filename | ./process > sample.txt

要不你也可以这样给

 ./process < filename > sample.txt

否则

 echo "1" | ./process > sample.txt

在该文件中,您只能放置整数值并像这样给出。

对于下面的程序,您可以将输入作为。

#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

执行此操作的一种方法是将 scanf() 输入写入文本文件。您的输入文本文件应根据 scanf() 序列正确格式化。然后将您的输入文本文件重定向到程序二进制文件,并将程序二进制文件的 shell 输出重定向到输出文件。

使用以下命令执行二进制文件。

./main < input.txt  > output.txt

例如:

如果你的main.c如下所示

scanf("%s\n", &my_string);
scanf("%d\n", &my_int);

那么你应该准备一个input.txt如下

Hello
31
#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 语句,从那个文件我应该能够提供输入而不是终端。