Я тестировал очень простую программу, написанную на C, полная версия которой приведена ниже. При попытке выполнить исполняемый файл, созданный TCC, я заметил, что мне нужно было вводить ввод для каждого последующего вызова fgets() до того, как я действительно увижу вывод любых вызовов printf().
Это очень сбивало с толку, поэтому я решил попробовать запустить исполняемый файл на стандартной консоли Windows. Он работал безупречно, а подсказки ввода и вывода отображались в правильном порядке.
Однако я заметил, что если я скомпилирую программу с помощью GCC, она будет нормально работать на терминале, скомпилированном в Cygwin (mintty, хотя я получил те же результаты с rxvt).
Может ли кто-нибудь объяснить, почему это происходит, и как я могу предотвратить это? Я хотел бы компилировать свои программы независимо от Cygwin, но при этом использовать терминал на основе Cygwin.
Спасибо!
int main()
{
char something[12];
printf("This printf() should be outputted before you are prompted for input: ");
fgets(something, sizeof something, stdin);
printf("You entered, %s", something);
}