是否可以一次读取字符和整数? 像这样:
char name[32];
int age;
printf("Give name and age: ");
scanf("%s%d%*c", name, &age);
它一直在阻挡。
答案 0 :(得分:3)
更新:您只接受输入但不打印任何内容。请参阅以下代码(工作和测试)
#include <stdio.h>
int main(void) {
char name[32];
int age;
printf("Give name and age: ");
scanf("%31s%d", name, &age);
printf("Your name is %s and age is %d",name,age);
}
输入:Shaz 30
输出:您的名字是Shaz,年龄是30
答案 1 :(得分:2)
char name[32];
int age;
printf("Give name and age: ");
scanf("%31s%d", name, &age);
如果输入string
超过31个字符,则age
读取的值将受到影响,这是fgets
派上用场的地方。
不要同时读取同一行输入的名称和年龄。首先读取名称以强制用户输入新行,以便您可以将整行作为输入名称处理。
阅读fgets
答案 2 :(得分:2)
这是方法之一
代码
#include<stdio.h>
char name[32],age;
int main()
{
printf("Enter name and age: ");
scanf("%s%d", name, &age);
printf("\nNAME : %s AGE : %d",name,age);
}
答案 3 :(得分:0)
我测试了你的代码,没有错误。也许你应该只添加printf()
来打印答案。你会发现你可以得到与你打印的相同的答案。
编辑:如果输入为Colin 23
(需要空格),则应使用printf("name is %31s, age is %d", name, age)
。然后您将获得输出Colin 23
。
答案 4 :(得分:-3)
你可以这样做:
#include <stdio.h>
int main(void)
{
char name[32];
int age;
printf("Give name and age: ");
scanf("%s%d", name, &age);
printf("%s\n",name);
printf("%d",age);
}