要使用getchar()
函數實現菜單選擇,你可以按照以下步驟進行操作:
getchar()
函數讀取用戶輸入的字符。下面是一個簡單的示例代碼:
#include <stdio.h>
#include <string.h>
int main() {
char menu[] = {"1. 選項1", "2. 選項2", "3. 選項3", "4. 退出"};
int choice;
while (1) {
printf("%s\n", menu);
printf("請輸入選項(1-4):");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("你選擇了選項1\n");
break;
case 2:
printf("你選擇了選項2\n");
break;
case 3:
printf("你選擇了選項3\n");
break;
case 4:
printf("退出程序\n");
return 0;
default:
printf("無效輸入,請輸入1-4之間的數字\n");
}
}
return 0;
}
在這個示例中,我們使用scanf()
函數讀取用戶輸入的數字,然后使用switch
語句根據用戶輸入的數字執行相應的操作。注意,這里我們使用scanf()
而不是getchar()
來讀取用戶輸入的數字,因為getchar()
只能讀取單個字符,而scanf()
可以讀取整行輸入并將其轉換為整數。如果你確實需要使用getchar()
來實現這個功能,你可以使用以下代碼:
#include <stdio.h>
#include <string.h>
int main() {
char menu[] = {"1. 選項1", "2. 選項2", "3. 選項3", "4. 退出"};
char input;
while (1) {
printf("%s\n", menu);
printf("請輸入選項(1-4):");
// 使用getchar()讀取用戶輸入的字符,直到用戶輸入換行符或空格
while ((input = getchar()) != '\n' && input != ' ') {
// 可以在這里處理用戶的輸入,例如檢查輸入是否有效
}
// 根據用戶輸入的字符(換行符)判斷用戶選擇的菜單項
if (input == '\n') {
switch (menu[0] - '0') {
case 1:
printf("你選擇了選項1\n");
break;
case 2:
printf("你選擇了選項2\n");
break;
case 3:
printf("你選擇了選項3\n");
break;
case 4:
printf("退出程序\n");
return 0;
default:
printf("無效輸入,請輸入1-4之間的數字\n");
}
}
}
return 0;
}
在這個示例中,我們使用getchar()
函數逐個讀取用戶輸入的字符,直到用戶輸入換行符或空格。然后,我們根據用戶輸入的第一個字符(換行符)判斷用戶選擇的菜單項。注意,這里我們使用menu[0] - '0'
將菜單項的字符轉換為整數,以便在switch
語句中使用。