输入垃圾

来源:百度知道 编辑:UC知道 时间:2024/05/12 12:54:07
问题:输入函数有可能留下“垃圾”

例 int x;
char ch;
scanf(“%d”,&x);
ch=getchar();
printf(“x=%d,ch=%d\n”,x,ch);
执行:123
输出:x=123,ch=10(换行)

解决方法:
用getchar()清除
用函数fflush(stdin)清除全部剩余内容
用格式串中空格或“%*c”来“吃掉”

例 int x;
char ch;
scanf(“%d”,&x);
scanf(“ %c”,&ch);
或 scanf(“%*c%c”,&ch);
这是老师的一段课件,不甚明白,请问为什么上方的ch会输出10?
以及所提到的解决方法是怎么回事?

不懂!

输入垃圾
第一次听
不过看了感觉貌似有道理
据我判断
是因为你输入的时候是这样的
123 回车
x=123 n=回车='\n'=10
每次在输入数据之后自然要回车 在缓冲区中自然被ch接受
这是可以解释的

%c格式符能读取键盘上任何按键的值,连回车、空格等按键都能被%c读取。
举个例子你就明白了
例如: int a;
char s;
scanf("%d%c",&a,&s);
运行时从键盘输入1a回车,则数字1被读入变量a,字符‘a’被读入变量s。可是换一种scanf写法就不对了:
scanf("%d",&a);
scanf("%c",&s);
运行时从键盘输入 1回车a回车,则1被读入变量a,回车符被读入变量s。因为scanf语句是以回车符作为输入结束标记的,两个scanf语句都读入整数没关系,可若第一次读整数第二次读字符,就必然会出错。解决的方法有很多,你的老师讲的是较难理解的解决方法,建议你尝试我的解决方法,也就是用一个scanf语句输入多个变量,不管变量有多少种类型都没关系。

为什么清理系统垃圾不包括IE里的输入记录 打开IE浏览器,输入一个网址会同时出现别的不认识的垃圾网页,怎么办啊! 我的IE输入栏多了垃圾网站,用超级兔子也不行,怎么办 输入网站时栏里怎么老是中文字啊 好象垃圾广告啊?前面还有个标志S样 文本文档中输入命令可以删除系统垃圾什么的还有清楚系统多余进程的命令 什么是垃圾?垃圾是什么?? 哪位告诉下在CS里面踢名字乱七八糟的作弊垃圾时输入什么命令,我记得是kick users什么的,麻烦告诉下,谢谢!! 怎样惩罚发送手机垃圾短信的号码?比如说哪里有输入手机号不用回复确认码即可包月服务的网站 在网上输入自己的手机号,给好友编辑短信群发。安全吗?会不会出现多扣钱或者受到垃圾短信的可能? 清除windows xp系统淤塞的垃圾,如(lj )请问在哪新建一个记事本输入@echo off清除系统垃圾文件