Can';C语言中的t读结构数组

Can';C语言中的t读结构数组,c,arrays,structure,C,Arrays,Structure,我正在尝试读取一个对象的成员,如下面的代码所示。 问题是代码无法读取数组中的第二个成员(car[i].model)和第三个成员(car[i].price),只能读取第一个成员(car[i].manufacturer) #包括 #包括 结构机 { 国际价格; 焦炭制造商[30]; char模型[30]; }; int main() { int i=0,n; printf(“介绍汽车数量:”); 扫描频率(“%d”和“&n”); 结构机车[100]; 对于(i=0;i

我正在尝试读取一个对象的成员,如下面的代码所示。
问题是代码无法读取数组中的第二个成员(car[i].model)和第三个成员(car[i].price),只能读取第一个成员(car[i].manufacturer)

#包括
#包括
结构机
{
国际价格;
焦炭制造商[30];
char模型[30];
};
int main()
{
int i=0,n;
printf(“介绍汽车数量:”);
扫描频率(“%d”和“&n”);
结构机车[100];
对于(i=0;i
scanf_s
要求为格式为
%s
的输入参数指定缓冲区大小。缓冲区大小包括终止null。调整您的代码,如下所示:

struct machine
{
    int price;
    char manufacturer[30];
    char model[30];
};

struct machine car[100];
....
scanf_s("%s", car[i].manufacturer, 30 );
                                // ^^ buffer size
....    
scanf_s("%s", car[i].model, 30 );
                        //  ^^ buffer size
....
scanf_s("%d", &car[i].price);  // no buffer size

“问题是代码无法读取”,wnat的意思是,不编译,在运行时失败,给出错误的结果,…在运行时,我只能读取car[I]。制造商。它跳过了读取car[i].model和car[i].price的过程。您需要读取一个,因为您使用的是错误的,并且具有未定义的行为。我们可以稍微了解一下输入吗?该程序正在为我使用常规扫描。问题可能来自您的扫描功能。
struct machine
{
    int price;
    char manufacturer[30];
    char model[30];
};

struct machine car[100];
....
scanf_s("%s", car[i].manufacturer, 30 );
                                // ^^ buffer size
....    
scanf_s("%s", car[i].model, 30 );
                        //  ^^ buffer size
....
scanf_s("%d", &car[i].price);  // no buffer size