Я пишу программу на C, и мне нужно дождаться, пока пользователь нажмет любую клавишу, чтобы продолжить. Когда я использую getchar();
, он ожидает нажатия клавиши Enter. Но когда я использую его внутри цикла while
, он не работает. Как я могу заставить свой код ждать нажатия любой клавиши, чтобы продолжить цикл?
Вот мой пример кода. Я использую GNU/Linux.
#include <stdio.h>
#include<stdlib.h>
int main()
{
int choice;
while(1) {
printf("1.Create Train\n");
printf("2.Display Train\n");
printf("3.Insert Bogie into Train\n");
printf("4.Remove Bogie from Train\n");
printf("5.Search Bogie into Train\n");
printf("6.Reverse the Train\n");
printf("7.Exit");
printf("\nEnter Your choice : ");
fflush(stdin);
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("Train Created.");
break;
case 2:
printf("Train Displayed.");
break;
case 7:
exit(1);
default:
printf("Invalid Input!!!\n");
}
printf("Press [Enter] key to continue.\n");
getchar();
}
return 0;
}
_getch
. - person barak manos   schedule 07.02.2015_getch
, а не_getchar
!!! - person barak manos   schedule 07.02.2015_getch
- person H.R. Shadhin   schedule 07.02.2015conio.h
(кстати, простой поиск в Интернете тоже приведет вас туда). - person barak manos   schedule 07.02.2015getchar()
вместо одного. ваш предыдущий\n
читается вgetchar()
, так что вам нужно два из них. - person Parham Alvani   schedule 07.02.2015conio.h
доступно только в Windows. @ParhamAlvani это работа. но мой вопросfflush(stdin)
почему бы не работать доgetchar()
? - person H.R. Shadhin   schedule 07.02.2015fflush(stdin)
передgetchar()
и послеscanf()
- person Parham Alvani   schedule 07.02.2015getchar()
послеscanf
илиgetchar()
и удалитеfflush
. - person Spikatrix   schedule 07.02.2015system("read -n1 -r ")
- person Spikatrix   schedule 07.02.2015