DC-2 : scanf的用法
来源:互联网 发布:钢琴可以自学吗 知乎 编辑:程序博客网 时间:2024/06/05 14:14
部分内容参考:http://blog.csdn.net/kobesdu/article/details/39051399/
scanf使用心得:
scanf()读取前面讨论的过的某种基本变量类型的值,请在变量前加上一个&;否则会出现读取非法地址,报段错误;
scanf()把一个字符串读进一个字符数组中,请不要使用&。
scanf()使用空格,换行制表符和空格来决定怎样把输入分为几段。对于对于多个空格,scanf只会读取一个空格。
scanf会在遇空格、“回车”、“跳格”键。 遇宽度结束。 遇非法输入而停止读取某一段内的输入,但不会跳出。
关于缓存问题如下:
问题三:键盘缓冲区残余信息问题
#include <stdio.h>
int main()
{
int a;
char c;
do
{
scanf("%d",&a);
scanf("%c",&c);
printf("a=%d c=%c/n",a,c);
/*printf("c=%d/n",c);*/
}while(c!='N');
}
scanf("%c",&c);这句不能正常接收字符,什么原因呢?我们用printf("c=%d/n",c);将C用int表示出来,启用printf("c=%d/n",c);这一句,看看scanf()函数赋给C到底是什么,结果是 c=10 ,ASCII值为10是什么?换行即/n.对了,我们每击打一下"Enter"键,向键盘缓冲区发去一个“回车”(/r),一个“换行"(/n),在这里/r被scanf()函数处理掉了(姑且这么认为吧^_^),而/n被scanf()函数“错误”地赋给了c。
源程序应为(\n)
本人愚钝,尝试多次并未发现c不能接收字符,即使不输入字母,仍然可以打印“c= ”只是c没有值。
对于个数不同的字符数字,存在缓冲,会重复打印,翻阅了很多博客,仍然找不到原因。
对于容易读入回车转行字符,使用博文中fflush,空格。这点解决的很完美。
- DC-2 : scanf的用法
- DC.SetMapMode()的用法记录
- 四种DC的用法
- scanf 的特殊用法
- scanf的用法
- scanf sscanf的用法
- scanf 的超级用法
- scanf的用法
- 关于scanf的用法
- scanf的用法
- scanf的用法
- scanf()的用法经验
- scanf函数的用法
- scanf 的用法总结
- scanf的用法
- scanf的另一种用法
- scanf 的用法
- scanf()的用法
- JavaScript isNaN() 函数
- 归并排序例子(2017.07.11)
- 【Python】【程序分析器】关于Python Profilers性能分析器
- PHP性能优化
- ios开发CoreText框架流程图
- DC-2 : scanf的用法
- Codeforces #521B: Cubes 题解
- github可以下载msm和MTK代码
- css引入方式和选择器
- OAuth2.0
- mybatis使用annotation在mysql,oracle上进行批量处理
- MongoDB常用命令汇总之索引。
- 【GDOI2018模拟7.10】B
- 求N!的十进制表示中末尾0的个数 (python实现)