c语言输入法
Input in c language
为什么我无法在我的 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);
}
scanf("%c",&ch);
输入 float
值并按下 enter
后,scanf
会读取额外的换行符 \n
。为了防止使用这个:
scanf(" %c",&ch);
Space 在 %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
}
输出为:
12
12.3
Integer 12
float 12.300000
character 10
你可以在这里看到输出,它打印出 10(\n
的 ASCII)。
解决方案:
#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);
}
输出:
12
12.3
k
Integer 12
float 12.300000
character k
为什么我无法在我的 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);
}
scanf("%c",&ch);
输入 float
值并按下 enter
后,scanf
会读取额外的换行符 \n
。为了防止使用这个:
scanf(" %c",&ch);
Space 在 %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
}
输出为:
12
12.3
Integer 12
float 12.300000
character 10
你可以在这里看到输出,它打印出 10(\n
的 ASCII)。
解决方案:
#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);
}
输出:
12
12.3
k
Integer 12
float 12.300000
character k