【发布时间】:2014-12-20 01:09:41
【问题描述】:
我是一名学习 C 的学生,在使用结构和数组读取作为数组一部分的字符时似乎卡住了。
当我运行代码时,它会跳过 char scanf 并且不会读取任何字符。读取整数等没有问题。
例如(这是一个示例,我的代码要长得多,但我知道这里有问题)。读入名字的scanf部分是否正确?
struct stud s[5];
int i = 0;
for (int i = 0; i < 5; i++)
{
fflush(stdout);
s[i].no = i + 1;
printf("\nStud number %d\n", s[i].no);
printf("Enter name:");
scanf_s("%c", &s[i].name);
printf("Enter grade: ");
scanf_s("%d", &s[i].grade);
printf("Successfully added to grade book\n");
}
我在下面声明了它们:
struct stud {
int no;
char name;
int grade;
};
如果有人能指出我正确的方向,那就太好了?
【问题讨论】:
-
您预计会发生什么,而发生了什么?
-
这一行:printf("输入姓名:");因为只会读取一个字符,可能应该是: printf("Enter first Letter of Name:");