如何排除'输入'在c中输入char输入?

时间:2017-05-15 05:52:40

标签: c char

#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:\Users\Saran\Desktop>gcc new.c
C:\Users\Saran\Desktop>a
Enter a : s
Enter b : Enter c : c
Enter d :

如果这是我的代码,它会将第一个char变为变量&#39; a&#39;然后,如果我按下输入变量&#39; b&#39;将输入作为输入。如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

在C语言中,所有输入操作都是在ASCII代码的帮助下完成的。 输入键具有ASCII码10,当您按 Enter 键,然后scanf("%c",&b)将其转换为ASCII并存储10。您可以通过打印printf("%d",b)来查看。

在您的情况下,您可以使用替代输入字符串getchar()来处理 Enter ,如

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

输出:

  

输入a:输入b:输入c:输入d:
  打印a - m
  打印b - n
  打印c - 0
  打印d - p