如何使用scanfc获取多个输入 #包括 int main() { 字符名[10]; 出生年月; printf(“输入您的姓名:”); scanf(“%c”,名称); printf(“输入您的出生年份:”); scanf(“%i”和出生年份); int age=2020——出生年份; printf(“您的年龄是%i”,年龄); }
我试图将出生年份的值作为输入,但由于某种原因,它会自动将其指定为0。我做错了什么?在第一次扫描中,您应该读取一个字符串,而不是一个字符,这样就可以了。 另外,在读取字符之前有一个空格总是好的,这样可以重置缓冲区内存如何使用scanfc获取多个输入 #包括 int main() { 字符名[10]; 出生年月; printf(“输入您的姓名:”); scanf(“%c”,名称); printf(“输入您的出生年份:”); scanf(“%i”和出生年份); int age=2020——出生年份; printf(“您的年龄是%i”,年龄); },c,scanf,C,Scanf,我试图将出生年份的值作为输入,但由于某种原因,它会自动将其指定为0。我做错了什么?在第一次扫描中,您应该读取一个字符串,而不是一个字符,这样就可以了。 另外,在读取字符之前有一个空格总是好的,这样可以重置缓冲区内存 #include <stdio.h> int main() { char name[10]; int birth_year; printf("Enter your name : "); scanf("
#include <stdio.h>
int main()
{
char name[10];
int birth_year;
printf("Enter your name : ");
scanf("%c",name);
printf("Enter your birth year : ");
scanf("%i",&birth_year);
int age = 2020 - birth_year;
printf("Your age is %i",age);
}
#包括
int main()
{
字符名[10];
出生年月;
printf(“输入您的姓名:”);
scanf(“%s”,名称);
printf(“输入您的出生年份:”);
scanf(“%d”和出生年份);
int age=2020——出生年份;
printf(“您的年龄是%i”,年龄);
}
在第一次扫描中,您应该读取一个字符串而不是一个字符,这样就可以了。
另外,在读取字符之前有一个空格总是好的,这样可以重置缓冲区内存
#include <stdio.h>
int main()
{
char name[10];
int birth_year;
printf("Enter your name : ");
scanf("%c",name);
printf("Enter your birth year : ");
scanf("%i",&birth_year);
int age = 2020 - birth_year;
printf("Your age is %i",age);
}
#包括
int main()
{
字符名[10];
出生年月;
printf(“输入您的姓名:”);
scanf(“%s”,名称);
printf(“输入您的出生年份:”);
scanf(“%d”和出生年份);
int age=2020——出生年份;
printf(“您的年龄是%i”,年龄);
}
对字符数组(字符串)使用%s
(而不是%c
)。重复后,您可以在此处看到答案:@MiguelGarcía Hmm-不是明显的重复,但我确信某处有一个。这里的问题是读取单个字符而不是字符串。使用字符数组(字符串)使用%s
(而不是%c
)。重复后,您可以在此处看到答案:@MiguelGarcía Hmm-不是明显的重复,但我肯定在某处有一个。这里的问题是读取单个字符而不是字符串代码>几乎肯定会溢出。确保使用较长的字符串,例如char name[100]编码>并使用scanf(“%99s”,名称)限制输入代码>。这两个格式说明符会自动过滤前导空格,只需要使用%c
和%[]
就可以了,而这两个格式说明符不需要。scanf(“%s”,name)代码>不好/比.Aside字符名[10]更差代码>几乎肯定会溢出。确保使用较长的字符串,例如char name[100]编码>并使用scanf(“%99s”,名称)限制输入代码>。这两个格式说明符会自动过滤前导空格,只需要使用%c
和%[]
就可以了,而这两个格式说明符不需要。scanf(“%s”,name)代码>不好/比更差。