我正在创建一个程序,要求用户输入他们的婚姻状况。
我希望能够问他们是或否,然后使用if
语句。
我的代码只是跳过if
块并打印else
块。
#include<stdio.h>
int main(void)
{
int age;
char marr;
printf("Please enter your age: \n");
scanf_s("%d",&age);
getchar();// getchar() is being used to clear any buffer of any remaining keystrokes that might stll be stored.
printf("Are you married ? (y/n)\n");
scanf_s("%c", &marr);
if (marr == 'y')
printf("Married\n");
else
printf("Unmarried\n");
}
出于某种原因,无论我输入什么,我仍然得到unmarried
的输出,
不明白为什么。
答案 0 :(得分:0)
在这种情况下使用scanf()
而不是scanf_s()
,或者如果输入参数是字符,则需要缓冲区大小参数。您也可以在%c
语句scanf()
之前的空格中放置一个空格,而不是getchar()
- 命令。
#include<stdio.h>
int main(void) {
int age;
char marr;
printf("Please enter your age: \n");
scanf("%d",&age);
printf("Are you married ? (y/n)\n");
scanf(" %c", &marr);
if (marr == 'y')
printf("Married\n");
else
printf("Unmarried\n");
}