C-значение scanf непосредственно из терминала


У меня есть процесс c, который ожидает ввода scanf().

Я хочу сохранить его результаты в файл *.txt. To terminal (linux)

./process > out.txt

Как можно написать в терминале scanf prehand?

Спасибо.

1 3

1 ответ:

Для приведенной ниже программы вы можете ввести как.

#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