用scanf连续读取字符串和int

时间:2014-10-29 00:48:20

标签: c string struct int scanf

我必须读取由空格分隔的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);
}

因为我必须连续阅读它,但是当我运行程序时它会在键入第一行数据并点击输入后停止,在玩了我的代码之后,问题与读取整数有关但是我似乎无法解决它。

1 个答案:

答案 0 :(得分:0)

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;];在结构变量声明中。然后它会发出编译错误。