У меня есть программа, в которой требуется пользовательский ввод, пользователь вводит число в 1-8, чтобы определить, как сортировать некоторые данные, но если пользователь просто нажимает, вводится другая функция. Я получаю общее представление о том, как это сделать, и я подумал, что у меня все будет нормально, но у меня возникают некоторые проблемы, когда пользователь просто нажимает клавишу ввода. В настоящее время мой код выглядит следующим образом:C - Чтение пользовательского ввода
//User input needed for sorting.
fputs("Enter an option (1-8 or Return): ", stdout);
fflush(stdout);
fgets(input, sizeof input, stdin);
printf("%s entered\n", input); //DEBUGGING PURPOSES
//If no option was entered:
if(input == "\n")
{
printf("Performing alternate function.");
}
//An option was entered.
else
{
//Convert input string to an integer value to compare in switch statment.
sscanf(input, "%d", &option);
//Determine how data will be sorted based on option entered.
switch(option)
{
case 1:
printf("Option 1.\n");
break;
case 2:
printf("Option 2.\n");
break;
case 3:
printf("Option 3.\n");
break;
case 4:
printf("Option 4.\n");
break;
case 5:
printf("Option 5.\n");
break;
case 6:
printf("Option 6.\n");
break;
case 7:
printf("Option 7.\n");
break;
case 8:
printf("Option 8.\n");
break;
default:
printf("Error! Invalid option selected!\n");
break;
}
}
Теперь я изменил вход, если заявление, чтобы попытаться == «», ввод == «» и введите == «\ п», но ни один из них не кажется, Работа. Любые советы будут очень признательны. В настоящее время из того, что я вижу, исходный оператор if завершается с ошибкой, и код переходит к части else, а затем печатает случай по умолчанию.
Просто чтобы быть ясно переменные I, объявленные в этом коде следующим образом:
char input[2]; //Used to read user input.
int option = 0; //Convert user input to an integer (Used in switch statement).
Спасибо! Кажется, что все предложения работают, но это разъясняет, когда я должен использовать один над другим. – oJM86o