2017-05-15 106 views
1
#include<stdio.h> 
int main() 
{ 
    printf("Enter a : "); 
    scanf("%c",&a); 
    printf("Enter b : "); 
    scanf("%c",&b); 
    printf("Enter c : "); 
    scanf("%c",&c); 
    printf("Enter d : "); 
    scanf("%c",&c); 
} 

輸出:如何在c中輸入char輸入時排除'enter'?

C:\Users\Saran\Desktop>gcc new.c 
C:\Users\Saran\Desktop>a 
Enter a : s 
Enter b : Enter c : c 
Enter d : 

如果這是我的代碼,它需要首先焦炭引入變量「a」,然後,如果我按下輸入變量「B」取輸入作爲其輸入。如何克服這個問題?

+1

'的scanf( 「%C」,&a);' - >'的scanf( 「%C」,&a);' –

+0

另一種選擇(未好的scanf( 「%C」))是加每個scanf之後的getchar() – CIsForCookies

+0

或者使用'while((c = getchar())!='\ n'&& c!= EOF)來刷新'stdin';' –

回答

0

在C語言中所有的輸入操作都是在ASCII碼的幫助下完成的。 輸入密鑰有ASCII碼10,當您按輸入密鑰然後scanf("%c",&b)將其轉換爲ASCII並存儲10。您可以通過打印printf("%d",b)來查看。

在你的情況,你可以使用替代輸入字符串getchar()處理輸入

int main() { 

    char a,b,c,d; 
    printf("Enter a : "); 
    scanf("%c",&a); 
    getchar(); 
    printf("Enter b : "); 
    scanf("%c",&b); 
    getchar(); 
    printf("Enter c : "); 
    scanf("%c",&c); 
    getchar(); 
    printf("Enter d : "); 
    scanf("%c",&d); 
    printf("\n print a - %c ",a); 
    printf("\n print b - %c ",b); 
    printf("\n print c - %c ",c); 
    printf("\n print d - %c",d); 


    return 0; 
} 

輸出:

輸入:輸入B:輸入C:輸入d:
打印 - m
print b - n
print c - 0
打印d - P