Как напечатать строку как вход для потока стандартного ввода? - PullRequest
0 голосов
/ 25 апреля 2019

Как я могу передать потоку stdin пользовательскую строку, используя, например, python с printf?Я не могу сделать это до запуска исполняемого файла, потому что это то, что мне нужно сделать после некоторых других вводов.

Код:

void play(){
    int guess=0;
    char buf[CHOICEBUFSIZE];
    long long int attempt=0;
    time_t timer;
    int value;

    time(&timer);
    timer /= 60;
    timer *= 60;

    //printf("<<<<<< Time: %t\n", timer);

    srand(timer);

    do {
        attempt += 1;
        value = rand();
        puts(" > Gimme the magic number or 0 to gtfo!");
        printf(" < ");

        //RIGHT DOWN HERE 
        fgets(buf, CHOICEBUFSIZE, stdin);
        guess = atoi(buf);

    printf("%d\n", value);
        if (guess == value){
            win(attempt);
            return;
        }
        else {
            puts(" > Not even close!\n > Try again!");
        }
    } while (guess);

}

Вот экран, показывающий, куда мне нужно ввестиЭто.

Заранее спасибо.Я уверен, что ответ прост, но я не смог найти ничего похожего на мой случай.

1 Ответ

0 голосов
/ 26 апреля 2019

stdin является входным потоком, поэтому вы не можете писать в него. Поскольку звучит так, будто вы пытаетесь выполнить две задачи параллельно и одна общается с другой, вы можете захотеть использовать pthreads или fork().

...