Я учусь программировать, и теперь я сосредотачиваюсь на языке C. Недавно я купил курс по этому поводу, и учитель использовал среду разработки Eclipse. Сначала у меня были некоторые проблемы с запуском кода, но они были решены с помощью небольшого исследования, но когда я попробовал что-то простое, например, поставить printf () перед scanf (), все сработало не так, как задумано, scanf () выполняется перед printf (), который предшествует ему , как вы видите:
Затем я попытался запустить код на windows cmd, написав в блокноте, скомпилировав с помощью g cc и запустив его по запросу, и он работал как задумано:
После этого я попытался запустить код в другой среде IDE , Code Blocks, и результат был таким же, как при запуске на cmd, он работал так, как задумано:
Теперь, чтобы прояснить, я знаю, что fflu sh (стандартный вывод); команда работает, если я вставляю ее перед scanf () и что она связана с буфером (что я еще не понял должным образом), но я не понимаю, почему проблема существует в Eclipse, но этого не происходит в другие платформы . Мой учитель объяснил, что это связано с тем, что windows является домашней c ОС и проблематично c с профессиональными инструментами, такими как Eclipse. Но все же для меня это не имеет смысла, один и тот же код в одной ОС работает в IDE и не работает в другой. Очень проблематично c написать невидимый код на таком базовом c уровне, совершенно невозможно доверять какому-либо результату или выучить язык должным образом таким образом. Может ли кто-нибудь помочь мне с этим?
Я оставлю код здесь, но, как я уже сказал, это очень-очень просто, просто чтобы проиллюстрировать проблему:
#include <stdio.h>
int main() {
int n;
printf("Type an integer: ");
fflush(stdout);
scanf(" %d", &n);
printf("\nNumber = %d\n\n", n);
return 0;
}