scanf运用出现吃回车解决方法

#include<stdio.h>  
  
int main()  
{  
    char a, b;  
  
    printf("请输入两个字符:\n");  
    scnaf("%c", &a);  
    scanf("%c", &b);  
  
    printf("%c", a);  
    printf("%c", b);  
  
    return 0;  
}       
在Linux环境下输入两个字符,结果输出只有一个字符的问题.。  
主要原因是因为当你输入一个字符以后,输入回车键换行的时候,第二个scanf把你输入的回车键当做你输入的字符处理了,导致了只有一个字符的输出。解决办法有很多,这里提供两种方法参考:  
方法一:  
#include<stdio.h>  
  
int main()  
{  
    char a, b;  
  
    printf("请输入两个字符:\n");  
    scnaf("%c", &a);  
    scanf(”%c”,&b));//在两个scanf中间加一个scanf,把你输入的回车键“吃掉”,这样就能正常输出了  
    scanf("%c", &b);  
  
    printf("%c", a);  
    printf("%c", b);  
  
    return 0;  
}       
  
方法二:  
#include<stdio.h>  
  
int main()  
{  
    char a, b;  
  
    printf("请输入两个字符:\n");  
    scnaf("%c,%c", &a,&b);//将两个字符同时输入,不用换行,就不会发生“吃掉”字符的情况。  
  
    printf("%c", a);  
    printf("%c", b);  
  
    return 0;  
}   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章