我有一個程序需要用戶輸入,用戶輸入數字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語句來嘗試輸入==「」,輸入==「」,並輸入==「\ n」,但這些都不似乎工作。任何建議將不勝感激。目前從我可以看到的,最初的if語句失敗,代碼跳轉到else部分,然後打印默認情況。
只是要清楚,我宣佈這個代碼的變量如下:
char input[2]; //Used to read user input.
int option = 0; //Convert user input to an integer (Used in switch statement).
謝謝!每個人的建議似乎都有效,但是這澄清了我什麼時候應該使用一個。 – oJM86o 2010-02-25 01:16:02