gpt4 book ai didi

c - Scanf 需要比 C 中更多的值

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:26 27 4
gpt4 key购买 nike

我正在尝试学习结构并且正在使用这段代码

#include <stdio.h>

struct elements
{
char name[50];
int semester;
char am[15];
}student[100];

void read_struct(struct elements p[]);
int i=0;

main()
{

for (i=0;i<2;i++)
{
read_struct(student);

}
for (i=0;i<2;i++)
{ printf("%d\n",i);
printf("%s\n",student[i].name);
printf("%s\n",student[i].am);
printf("%d\n",student[i].semester);
}

system("pause");
}
void read_struct(struct elements p[])
{

gets(student[i].name);
gets(student[i].am);
scanf("%d\n",&student[i].semester);
}

我面临以下问题:在第二次迭代中,当我输入变量 student[1].semester 的值时,程序不会打印我输入的内容,而是等待我输入另一个数字,按回车键,然后它打印。我在每次获取和扫描后都尝试了 fflush(stdin),但我遇到了同样的问题。

最佳答案

尝试替换

scanf("%d\n", &student[i].semester);

scanf("%d", &student[i].semester);

除此之外,fflush(stdin) 会调用未定义的行为,所以不要使用它。

关于c - Scanf 需要比 C 中更多的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22896486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com