О Я не могу держать экран включенным , это общая проблема для всех, кто пытается запустить консольную программу в графической среде непосредственно из IDE, в частности Dev-C ++.Проблема в том, что нет консоли для ввода / вывода, тогда она предоставляется, но только на время работы программы, и поскольку программы работают быстро, если вы не добавите паузу после последнего ввода и вывода, вы не будетеесть время, чтобы прочитать вывод.
Многие пользователи MS Windows Dev-C ++ добавляют ужасный system("pause")
.Я всегда предлагаю, чтобы, если Dev-C ++ не мог предоставить консоль для ввода-вывода с опцией «держать ее открытой даже после завершения программы», то лучше открыть оболочку (cmd или powershell на окнах) изапустите вашу программу прямо оттуда.
Что касается проблемы ввода, то при неудачном сканировании возникает несколько проблем с буферизацией, поскольку ввод, который не распознается для данного формата, не отбрасывается и готов к следующему чтению.Например,
scanf("%f", &aFloat);
scanf("%f", &theNextFloat); // in your case you have the extra getchar();
не остановится для второго сканирования, если вы введете 1.25 4.5
в качестве первого ввода, поскольку 4.5
уже доступен для следующего сканирования.В вашем случае это была новая строка, оставленная в буфере, и поскольку getchar нашел ее, ей не нужно ждать ввода.Вместо этого вы можете использовать while( getchar() != EOF ) ;
, а затем, чтобы выйти, нажать Ctrl-D.