【问题标题】:how to exclude 'enter' while taking a char input in c? [duplicate]如何在 c 中输入字符时排除“输入”? [复制]
【发布时间】:2017-10-13 19:36:43
【问题描述】:
#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 放入变量“a”,然后如果我按 enter,则变量“b”将 enter 作为其输入。如何克服这个问题?

【问题讨论】:

  • scanf("%c",&amp;a); --> scanf(" %c",&amp;a);
  • 另一个选项(不如 scanf("%c"))是在每个 scanf 之后添加 getchar()
  • 或者使用while((c = getchar()) != '\n' &amp;&amp; c != EOF);刷新stdin
  • 或者喜欢this

标签: c char


【解决方案1】:

在 C 语言中,所有的输入操作都是在 ASCII 码的帮助下完成的。 Enter键有ASCII码10,当你按下Enter键然后scanf("%c",&amp;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 :
打印一个 - m
打印 b - n
打印 c - 0
打印 d - p

【讨论】:

    猜你喜欢
    • 2016-06-20
    • 2012-12-10
    • 2022-08-09
    • 2021-10-30
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    相关资源
    最近更新 更多