Я только что установил Eclipse и MinGW на компьютере моей сестры под управлением Windows 7.
Пока я тестировал, правильно ли установлено все Я заметил, что это не будет ничего печатать:Eclipse (или, может быть, окна виноваты?) Не будет печатать, если я не fflush (stdout)
#include<stdio.h>
int main() {
int x;
printf("Hello World!\n");
printf("Enter a number... \n");
scanf("%d", &x);
printf("You entered %d", x);
return 0;
}
вместо этого, он просто ожидает ввода и печати все это сразу.
Вот как это выглядит:
345
Hello World!
Enter a number...
You entered 345
Только после того, как я добавил вызов fflush(stdout)
после printf("Enter a number... \n");
, что Eclipse, напечатанной его в правильном порядке, смысл, этот код:
#include<stdio.h>
int main() {
int x;
printf("Hello World!\n");
printf("Enter a number... \n");
fflush(stdout);
scanf("%d", &x);
printf("You entered %d", x);
return 0;
}
работает точно так же, как ожидается.
Стоит отметить, что я открыл отдельный проект C++ и попробовал то же самое:
#include<iostream>
int main() {
int x;
std::cout<<"Hello!\n";
std::cout<<"Enter a number\n";
std::cin>>x;
std::cout<<"you entered "<<x;
}
Это работало прекрасно, и печатает без необходимости промывки ничего ...
Почему задержать выход Eclipse, в проектах C?
Что произойдет, если вы добавите несколько вызовов 'fflush (stdout)'? – wallyk
Вы уверены, что буфер ввода пуст до того, как вы отсканируете? Попробуйте изменить формат на ''% d ''(обратите внимание на пробел) –
@wallyk, я отредактировал главный пост. –