cypress js 测试:c语言 求助

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 23:33:42
printf("学号:);scanf("%ld,&stu[i].num);
printf("姓名:);scanf("%s,&stu[i].name);getchar();
printf("性别:);scanf("%s,&stu[i].sex);getchar();
printf("年龄:);scanf("%ld,&stu[i].age);

为什么在2,3行要加 getchar()???

因为输入时是这样的:
你输入的内容+回车
scanf会读入你的内容,而把回车留在键盘缓冲区。
下次再scanf时他会直接把上次的回车直接读入,而不是你新输入的内容。
所以,这时就需要用getch来吧多余的回车清除,这相当于清缓冲操作。
我建议你在printf("学号:);scanf("%ld,&stu[i].num);
后面也加一个,比较保险。

getchar()获得字符
在这我觉得有又没有都无所谓

我想上面“负家子弟”说的比较正确,你也可以自己上机试试,看看去掉getchar,那你肯定回出现输入姓名后,性别不用输,程序就运行完了,这就是getchar的作用,我想你也肯定知道了,但我要建议你的是当输入字符时最好用getchar(),而不要用scanf(),这样比较不容易出问题。

因为要从键盘输入,如果时选择的话,就不用了,用if、else就不用了

因为键盘输入是字符型!

上面的大哥说的不错我占........