如何使用scanfc获取多个输入 #包括 int main() { 字符名[10]; 出生年月; printf(“输入您的姓名:”); scanf(“%c”,名称); printf(“输入您的出生年份:”); scanf(“%i”和出生年份); int age=2020——出生年份; printf(“您的年龄是%i”,年龄); }

如何使用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("

我试图将出生年份的值作为输入,但由于某种原因,它会自动将其指定为0。我做错了什么?

在第一次扫描中,您应该读取一个字符串,而不是一个字符,这样就可以了。 另外,在读取字符之前有一个空格总是好的,这样可以重置缓冲区内存

#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)不好/比更差。