c语言输入

c语言输入,c,input,output,scanf,C,Input,Output,Scanf,为什么我不能在我的c程序中输入第三个字符 #include <stdio.h> int main(){ int a; scanf("%d",&a); float f1; scanf("%f",&f1); char ch; scanf("%c",&ch); printf("Integer %d\nfloat %f\ncharacter %

为什么我不能在我的c程序中输入第三个字符

#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    float f1;
    scanf("%f",&f1);
    char ch;
    scanf("%c",&ch);
    printf("Integer %d\nfloat %f\ncharacter %c",a,f1,ch);
}

#包括
int main(){
INTA;
scanf(“%d”和“&a”);
浮球f1;
scanf(“%f”、&f1);
char ch;
scanf(“%c”和“ch”);
printf(“整数%d\n浮点%f\n字符%c”,a,f1,ch);
}
输入
float
值并按
enter
后,
scanf
读取额外的换行符
\n
。要防止这种情况发生,请使用以下方法:

scanf(" %c",&ch);
%c
前面的空格读取额外的
\n
,所需字符将存储在
ch

要证明这一点,请参见以下代码:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    float f1;
    scanf("%f", &f1);
    char ch;
    scanf("%c", &ch);
    printf("Integer %d\nfloat %f\ncharacter %d", a, f1, ch); // changed to %d to print ASCII value
}
您可以在这里看到输出,它打印10(ASCII of
\n

解决方案

#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    float f1;
    scanf("%f", &f1);
    char ch;
    scanf(" %c", &ch);
    printf("Integer %d\nfloat %f\ncharacter %c", a, f1, ch);
}
输入
float
值并按
enter
后,
scanf
读取额外的换行符
\n
。要防止这种情况发生,请使用以下方法:

scanf(" %c",&ch);
%c
前面的空格读取额外的
\n
,所需字符将存储在
ch

要证明这一点,请参见以下代码:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    float f1;
    scanf("%f", &f1);
    char ch;
    scanf("%c", &ch);
    printf("Integer %d\nfloat %f\ncharacter %d", a, f1, ch); // changed to %d to print ASCII value
}
您可以在这里看到输出,它打印10(ASCII of
\n

解决方案

#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    float f1;
    scanf("%f", &f1);
    char ch;
    scanf(" %c", &ch);
    printf("Integer %d\nfloat %f\ncharacter %c", a, f1, ch);
}