标准输入函数
来源:互联网 发布:信息安全 人工智能 编辑:程序博客网 时间:2024/06/06 08:59
scanf ,getcher,gets,fgets区别?
都是把数据输到输入缓存器中,遇到结束标记把数据给所定义的变量。
scanf遇到回车或空格结束,并且回车与空格保存在缓存器中。
getchar遇到回车与空格结束,并且回车与空格保存在缓存器中。
gets遇到回车结束,在字符输入完成后加\0,缓存器中\n清除。
fgets遇到回车结束,在字符输入完成后加\n和\0.当然这是在长度足够的情况下,不够就加字符串结束标记\0.,缓存器中\n已经为提出。
用scanf和gets,fgets等函数输入给字符时,假设定义的长度为10,却可以输入大于10个的字符,这是为什么?
我们定义一个变量,实际上是向操作系统申请一段内存。
比如上述程序的char a[10],系统会给它分配一段连续的内存块用来存放数据。
这个内存块是随机的,它可以是目前空闲的任意一个内存段。
由于这个不确定性,所以它后面的内存块有两种可能:
如果恰好这段内存的后面的内存段没有被其他程序占用,那么我们对它进行使用是不会出错的。
这是输出字符串则会输出超过长度的字符,%s以\0结束。
就是你上述的超过10个还可以输入输出。但是它随时可能被其他程序修改得不到保证。
但是因为这段内存不属于本程序管理,它也有可能被其他程序占用,或者干脆就是操作系统禁止访问的区域,这时候就必定会导致错误了。
0 0
- C++标准输入函数
- 标准输入函数
- 标准输入函数scanf()
- 标准输入(出),文件输入(出)函数大汇总!
- 标准输入(出),文件输入(出)函数大汇总!
- 实现一个可以阻塞标准输入的模板函数
- C++ 从标准输入设备读取字符的函数
- 标准输入、标准输出、标准出错:
- 标准输入/输出/出错
- JAVA标准输入
- Java标准输入、输出
- 各标准输入总结。
- 标准输入与getchar()
- 标准输入scanf
- Perl_标准输入_STDIN
- stdin标准输入流
- Unix标准输入、输出
- 从标准输入读取
- django mysql 设置
- 类和对象的设计思想
- 对象的引用和创建
- java web项目测试实现银联支付
- 【NGUI】ui tween 和 play tween
- 标准输入函数
- 第三章:http报文
- BZOJ1251 序列终结者 题解&代码
- 访问权限
- RadioGroup
- Git-基本命令
- Java从文件中跳过n个字节读取数据
- HDU 5733 tetrahedron(三维几何)
- 对象的初始化和回收