Можно ли перенаправить файл в консольную программу так, как если бы пользователь вводил контент? - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть программа на C, которая использует scanf для чтения числа, а затем печатает номер. Я хочу каким-то образом смоделировать нажатия клавиш, перенаправив файл, чтобы я мог создать сценарий bash, который должен выполнять тестирование черного ящика.

Это моя программа ( прога ):

int main(){
    int a;

    printf("Write a number: ", a);
    fflush(stdout);

    scanf("%d", &a);
    printf("\nYou entered: %d\n", a);

    return 0;
}

У меня есть файл ( infile ) с таким содержанием:

12\n

Можно ли как-то перенаправить файл в качестве ввода в программу для имитации ввода пользователя?

При наборе

./prog < infile

Я получаю

Write a number: 
You entered: 0

1 Ответ

1 голос
/ 09 ноября 2011

Ваш файл должен быть таким:

12

Без \ n

Я попробовал вашу программу, и она работает!

echo '12' | ./prog
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...