консольный ввод C - PullRequest
       52

консольный ввод C

1 голос
/ 18 февраля 2020

Я новичок в C и хотел бы знать, в чем проблема с моим кодом:

#include "stdio.h"

int main(void)
{ 
    int a;

    printf("Please input an integer value: ");
    scanf("%d", &a);
    printf("You entered: %d\n", a);

    return 0;
}

Моя проблема в том, что мне нужно ввести значение, прежде чем я получу вывод на консоль, для Например, если я наберу 7, я получу вывод на консоль: Пожалуйста, введите целочисленное значение: Вы ввели: 7

Я попробовал точно такой же код на другом компьютере, и он работал довольно хорошо, я думаю, это проблема с буфером? но я понятия не имею, как это исправить .. Любые идеи, пожалуйста?

1 Ответ

1 голос
/ 18 февраля 2020

Как уже упоминалось, чтобы гарантировать, что эта строка будет напечатана в этой точке вашего кода, вы можете использовать стандартный sh следующий вывод:

#include "stdio.h"

int main(void)
{ 
    int a;

    printf("Please input an integer value: ");
    fflush(stdout);
    scanf("%d", &a); 
    printf("You entered: %d\n", a);

    return 0;
}

вы можете прочитать это для более подробная информация, Почему printf не вызывает гриппа sh после вызова, если в строке формата нет новой строки?

обновлено благодаря комментариям @Osiris

...