簡體   English   中英

在C編程中遇到麻煩if else語句

[英]Having trouble with a C programming if else statement

當我鍵入M或F時,它會直接跳到循環的“無效選項”部分,而不是打印特定的文本。 任何輸入表示贊賞。

    #include <stdio.h>
    int main() {

      int MorF; //gender choice

       printf("_____________________________________\n\n"); 
       printf("Pick a gender. Type: M for Male or F for Female\n");
       scanf(" %d" , &MorF);
        if ( MorF == 'm' || MorF == 'M' ) { 
           printf("You chose Male\n");
       } else if ( MorF == 'f' || MorF == 'F' ) {
           printf("You chose Female\n");
       } else {
        printf("Invalid Option\n");  
}
printf("______________________________________\n\n");

}

https://www.tutorialspoint.com/c_standard_library/c_function_getchar.htm

您可能要使用getchar或類似的東西代替scanf,或對%s使用%c。 現在,似乎您要輸入一個int,但要檢查一個字符輸入。

%d格式說明符掃描以10為底的整數。 您要一個char char的正確格式說明符是%c ,而避免scanf找不到有效輸入並將其留在stdin可避免死循環的正確格式字符串" %c" 也就是說,如果您堅持使用scanf ,而不是getcharfgets

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM