数据结构之字符串学习感悟
数据结构第一章第一节讲了基础知识,涉及到一个小程序:输入学生学号、姓名,并输出。初步代码如下:
#include<stdio.h>
#define n 2
struct Student{
char name;
int num;
}stu;
int main(){
int i;
for(i=0;i<n;i++)
{gets(stu.name);
scanf("%d",&stu.num);
}
for(i=0;i<n;i++)
{puts(stu.name);
printf("%d\n",stu.num);
}
return 0;
}
比如我想输入第一个学生的姓名:s1,学号:10、
然后输入第二个学生的姓名:s2,学号:20.
但是还没有输完,只输入了s2,就显示除了结果,而且后边的结果不正确。
这是为什么呢?
仔细想一想。
最终才发发现了关键的问题:
在输完第一个学生的学号之后会敲一个回车,计算机把那个回车当成第二个字符串存进第二个字符数组里面了。
getcher就是用来存那个多余的回车的。
原来,只需要在第一个循环,scanf之后加入getchar();就可以解决了问题。
支持个
页:
[1]