как записать что-то в консоль, прежде чем вводить данные пользователем на C?

#c #eclipse #input #console

Вопрос:

Я просто пытаюсь записать что-то для консоли, используя язык C, прежде чем вводить данные пользователем, но он всегда запрашивает ввод, а затем, когда я нажимаю enter, печатает то, что я хотел распечатать, прежде чем вводить данные пользователем. Я использую Eclipse IDE (версия 2020 -09), и мой компилятор-Cygwin. вот как я пытаюсь этого добиться:

 #include <stdio.h>

int main() {

    printf("please enter your name: ");
        char a[3];
        gets(a);
        return 0;

}
 

Ответ №1:

Выходные данные обычно буферизуются по умолчанию.

Вы можете очистить выходной буфер явно , вызвав fflush(stdout) после printf() , например:

 #include <stdio.h>

int main() {
    printf("please enter your name: ");
    fflush(stdout); // <-- here
    char a[3];
    gets(a);
    return 0;
}
 

Или вы можете включить n в вывод, например:

 #include <stdio.h>

int main() {
    printf("please enter your name: n");
    char a[3];
    gets(a);
    return 0;
}
 

Комментарии:

1. Спасибо за ответ первое решение сработало так идеально, но я не знаю, почему второе не работает, как вы думаете, это из-за моего компилятора? или я пропустил пакет при установке? (Я использую Cygwin).