溫馨提示×

怎樣結合getchar實現(xiàn)菜單選擇

小樊
85
2024-10-10 15:24:59
欄目: 編程語言

要使用getchar()函數(shù)實現(xiàn)菜單選擇,你可以按照以下步驟進行操作:

  1. 首先,定義一個包含菜單選項的字符串數(shù)組。
  2. 然后,編寫一個循環(huán),用于顯示菜單并接收用戶輸入。
  3. 在循環(huán)內部,使用getchar()函數(shù)讀取用戶輸入的字符。
  4. 根據(jù)用戶輸入的字符,判斷用戶選擇的菜單項,并執(zhí)行相應的操作。
  5. 如果用戶選擇退出菜單,跳出循環(huán)并結束程序。

下面是一個簡單的示例代碼:

#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之間的數(shù)字\n");
        }
    }

    return 0;
}

在這個示例中,我們使用scanf()函數(shù)讀取用戶輸入的數(shù)字,然后使用switch語句根據(jù)用戶輸入的數(shù)字執(zhí)行相應的操作。注意,這里我們使用scanf()而不是getchar()來讀取用戶輸入的數(shù)字,因為getchar()只能讀取單個字符,而scanf()可以讀取整行輸入并將其轉換為整數(shù)。如果你確實需要使用getchar()來實現(xiàn)這個功能,你可以使用以下代碼:

#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 != ' ') {
            // 可以在這里處理用戶的輸入,例如檢查輸入是否有效
        }

        // 根據(jù)用戶輸入的字符(換行符)判斷用戶選擇的菜單項
        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之間的數(shù)字\n");
            }
        }
    }

    return 0;
}

在這個示例中,我們使用getchar()函數(shù)逐個讀取用戶輸入的字符,直到用戶輸入換行符或空格。然后,我們根據(jù)用戶輸入的第一個字符(換行符)判斷用戶選擇的菜單項。注意,這里我們使用menu[0] - '0'將菜單項的字符轉換為整數(shù),以便在switch語句中使用。

0