关于scanf()和 的种种恩怨。

scanf()实在不是一个令人喜欢的函数;

今天在写课程设计作业的时候,遇到了一个问题:
代码如下:
[mycode=c]scanf(“%d”,&a);
gets(b);[/mycode]
然后输入:1 回车
当代码写成这样的时候,gets()就会被直接跳过。
把代码改成这样:
[mycode=c]scanf(“%d”,&a);
gets(b);
printf(“%d”,b[0]);[/mycode]
发现输出的b[0]的值为0,ASCII码里0代表的是空字符,即字符串的结束。
也就是说scanf把回车当成空字符读进去了。
Continue reading