簡體   English   中英

Scanf在c中跳過字符

[英]Scanf skipping character in c

int main(){
    int firstNumber, secondNumber, thirdNumber;
    char oper;

    scanf("%d", &firstNumber);
    printf("%d\n", firstNumber);

    scanf("%c", &oper);
    printf("%c\n", oper);

    scanf("%d", &secondNumber);
    printf("%d\n", secondNumber);


    return 0;
}

為什么這段代碼不能按預期工作,它讀取第一個和第二個數字,但不讀取它們之間的字符。

使用scanf()很難。 在這里,在第一個數字后按回車鍵在stdin留下了一個換行符。 所以,這就是你讀到的角色。 某些格式轉換會忽略空格,但%c不會。

要使其忽略前導空格,您應該改用

scanf(" %c", &oper);

格式字符串中的空格告訴scanf()忽略它找到的任何空格,因此您將讀取一個非空格字符。

暫無
暫無

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

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