Начало работы на языке C. Я использую eclipse (juno) как свою IDE и установленный плагин CDT. Я также распаковал mingw64 (компилятор GCC). Я написал очень простую программу, чтобы узнать, работает ли она. Это мой код:
#include <stdio.h>
int main()
{
int age;
printf("Hello, please enter your age:\n");
scanf("%d", &age);
printf("Your age is %d", age);
return 0;
}
Проблема заключается в том, что выходной буфер заполняется строковым значением первого printf
, но не выводит его на консоль. Мне нужно ввести число, и только тогда буфер заливает все данные в консоль, поэтому я вижу консоль примерно так:
1
Hello, please enter your age:
Your age is 1
вместо ожидаемого:
Hello, please enter your age:
1
Your age is 1
Теперь я обнаружил, что я могу использовать fflush(stdout)
после первого printf
, но я не думаю, что это решение элегантно и даже необходимо. Любые идеи о том, как я могу это преодолеть?
EDIT - потому что я изучаю это в своем университете, я не могу использовать что-либо, что не было изучено в курсе, поэтому я могу использовать printf
и scanf
НОВЫЙ РЕДАКТ.. Думаю, я нашел для этого объяснение. Как я уже сказал, я выводил на консольный просмотр внутри Eclipse. Странно то, что, если я компилирую и запускаю программу из командной строки Windows, я получаю желаемый результат. Поэтому я думаю, что eclipse фактически записывает вывод в файл и представляет его в окне консоли. Как заставить eclipse открыть окно реальной командной строки в моих конфигурациях запуска?