2017-05-15 4 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); 
} 

Ausgang:wie man "enter" ausschließt, während man eine char-Eingabe in c nimmt?

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

wenn dies mein Code ist, dauert es erste Zeichen in der Variable ‚a‘ und dann, wenn ich die Variable ‚b‘ Eingabetaste drücken nimmt als Eingabe ein. Wie überwinde ich dieses Problem?

+1

'scanf ("% c", &a);' -> 'scanf ("% c", &a);' –

+0

eine weitere Option (nicht gut, da scanf ("% c")) ist hinzufügen getchar() nach jedem scanf – CIsForCookies

+0

Oder flush 'stdin' mit' while ((c = getchar())! = '\ n' && c! = EOF); ​​' –

Antwort

0

In C-Sprache werden alle Eingabeoperationen mit Hilfe von ASCII-Code ausgeführt. Geben Sie ein, haben Sie den ASCII-Code 10, und drücken Sie dann Geben Sie ein, und geben Sie dann scanf("%c",&b) in ASCII um und speichern Sie 10. Sie können durch Drucken printf("%d",b) sehen.

In Ihrem Fall können Sie alternative Eingabe-string getchar() verwenden zur Handhabung Geben Sie wie

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; 
} 

Ausgang:

a Geben Sie: Geben Sie b: Geben Sie c: Geben Sie d:
drucken a - m
drucken b - n
drucken c - 0
Druck d - p

Verwandte Themen