当我运行代码时,它会询问我的年龄。但是不要求做爱吗?代码有什么问题。
#include<stdio.h>
#include<conio.h>
int main(void)
{
int age;
char sex;
printf("Enter your age \n");
scanf("%d",&age);
printf("Your age is %d \n",age);
printf("Enter your sex \n");
scanf("%c",&sex);
printf("Your sex is %c \n",sex);
getch();
return 0;
}
答案 0 :(得分:5)
您要从age
扫描中留下一个尾随换行符,然后将其视为有效且充足的输入,以跟踪scanf()
%c
格式说明符。变化
scanf("%d",&age);
到
scanf("%d%*c",&age);
将吃掉后续换行符。
话虽如此,getch()
不是标准的C函数。您应该使用getchar()
来代替stdio.h
。
答案 1 :(得分:4)
因为之前的\n
..
scanf()
尝试
scanf(" %c",&sex);
注意%c
之前的空格。该空间消耗了左侧尾随换行符\n
。
答案 2 :(得分:-1)
#include<stdio.h>
#include<conio.h>
int main(void)
{
int age;
char sex;
printf("Enter your age \n");
scanf("%d",&age);
printf("Your age is %d \n",age);
fflush(stdin); // Library function to clean the buffer..
printf("Enter your sex \n");
scanf("%c",&sex);
printf("Your sex is %c \n",sex);
getch();
return 0;
}