#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).