慢跑20 发表于 2014-2-25 22:51

数据结构之字符串学习感悟

数据结构第一章第一节讲了基础知识,涉及到一个小程序:输入学生学号、姓名,并输出。
初步代码如下:
#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();就可以解决了问题。




sdccumcm 发表于 2014-2-26 11:47

支持个      
页: [1]
查看完整版本: 数据结构之字符串学习感悟