我想编写一个程序,以获取有关学生姓名,年级和生日的数据,并将其保存到结构中。我已经编写了一个“ for循环”来执行此操作,但是随着我的增加,我的循环无法正常工作。 编辑: 所以我的循环在i = 0时工作良好,但是当我变高(i = 1)时,它无法正确扫描信息。
输入:
<input id="name-input" />
<span>Hello, </span><span id="name-output">Visitor</span>
**
name:a
birthdate:79/4/18
grades:20 20 20
name:b
birthdate:76/12/2
grades:16 13 19
Output:
Enter student's name: a
Enter student's birthday(y/m/d): 79 4 18
Enter student's grades: 20
Enter student's grades: 20
Enter student's grades: 20
Enter student's name:
Enter student's birthday(y/m/d):
b
Enter student's grades:
Enter student's grades:
Enter student's grades:
答案 0 :(得分:-1)
您应该这样做:
scanf("%d/%d/%d", &list[i].birthdate.year, &list[i].birthdate.month, &list[i].birthdate.day);
代替:
scanf("%d%d%d",&list[i].birthdate.year,&list[i].birthdate.month,&list[i].birthdate.day);
警告:请勿使用gets()
,这很危险。您可以按以下方式替换该语法:
fflush(stdin); // MUST REQUIRED OR INPUT WILL BE SKIPPED
fgets(list[i].name, 30, stdin);
示例输出:
Enter student's name:
a
Enter student's birthday(y/m/d):
2003/03/05
Enter student's grades:
12
Enter student's grades:
35
Enter student's grades:
66
Enter student's name:
b
Enter student's birthday(y/m/d):
2005/02/01
Enter student's grades:
44
Enter student's grades:
88
Enter student's grades:
5