gets和scanf
看了很多地方都没有找一个真正可以解决这个问题的
#include <stdio.h>
main()
{
int choose;
char a[20];
scanf("%d",&choose);
switch(choose)
{
case 1:
gets(a);
// scanf("%s",a);
puts(a);
break;
default:
break;
}
}
如果使用scanf("%s",a);编译运行均正确.
如果使用gets(a);编译可以通过,运行到gets(a);输入字符串时,直接跳过,也就是当这句不存在一样.真诚期待你的帮助!
不仅如此,在case 1:条件下的语句段内的函数使用gets()都是同样的结果!
scanf 的副作用,gets 读取了第一个 scanf 在输入缓冲区中的回车。
用 scanf 读取会跳过任何前导的 white space 字符,所以不受影响。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |