我必须读取 3 个由空格分隔的字符串和 2 个由空格分隔的整数,并将它们保存到结构中
#define n 5;
struct person
{
char last_name[20];
char sec_last_name[20];
char name[20];
int num;
int kw;
}client[n];
我尝试这样阅读
for(i=0;i<n;i++)
{
scanf("%s %s %s %d %d",client[i].last_name,client[i].sec_last_name,client[i].name,client[i].num,client[i].kw);
}
因为我必须连续读取它,但是当我运行程序时,它在输入第一行数据并按 Enter 键后停止,在使用我的代码后,问题与读取整数有关,但我似乎无法解决它。
最佳答案
scanf 语句有语法错误。在您的情况下,应在整数之前使用 &
。
scanf("%s %s %s %d %d",client[i].last_name,client[i].sec_last_name,client[i].name,&client[i].num,&client[i].kw);
还有一件事是,
#define n 5 /*;*/
不应使用 ;
。
示例:
如果使用;
,则将替换client[5;];在结构体变量声明中。然后就会报编译错误。
关于c - 使用 scanf 连续读取字符串和 int 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621040/