当前位置: 代码迷 >> C语言 >> [经验][讨论]关于scanf的小心之处
  详细解决方案

[经验][讨论]关于scanf的小心之处

热度:185   发布时间:2007-08-25 01:36:04.0
[经验][讨论]关于scanf的小心之处
知道我们在编码时经常用到scanf函数实现输入
但有时用scanf("%d\n",&a);会使程序输出出现乱码
或者会无法终止输入,一直处于输入状态
讨论如下
(1)作为新手应该注意;
(2)作为高手请讨论其内部产生机理;
(3)至于中级人物,有问题说问题,有意见谈意见;
(4)scanf("%[ ]",s);使用范围扩展问题;
搜索更多相关的解决方案: scanf  经验  

----------------解决方案--------------------------------------------------------
回复:(栖柏)[经验][讨论]关于scanf的小心之处

#include<stdio.h>
void main()
{
char a[40];
scanf("%s\n",a);
printf("%s\n",a);
}
假如输入a回车
再输入一个别的字符,回车才能输出a
为什么?
请指教


----------------解决方案--------------------------------------------------------
2楼的:不明白你的意思
----------------解决方案--------------------------------------------------------
用单步跟踪看了半天,还是不明白二楼的原因...

----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
char a[40];
scanf("%s",a);/* 注意scanf()输入格式 */
printf("%s\n",a);
}
----------------解决方案--------------------------------------------------------
\n也把回车当作输入,只有再接收一个字符才能输出
----------------解决方案--------------------------------------------------------
谁能说一下scanf()函数的返回值问题?
我经常见
while((c = scanf("%d",&a)) != EOF)
{
...
}

请问 那个返回值是怎么回事呢?
----------------解决方案--------------------------------------------------------

返回??你的是c?


----------------解决方案--------------------------------------------------------

不要用,去掉
直接scanf
不过这样写有的编译器也可编译啊
查查scanf什么样


----------------解决方案--------------------------------------------------------
http://blog.sina.com.cn/s/blog_3e778d64010003qb
----------------解决方案--------------------------------------------------------
  相关解决方案