PoEdu_24_字符串处理(fgets与gets)
来源:互联网 发布:mgcp对接时默认端口号 编辑:程序博客网 时间:2024/04/20 17:00
下面来看一下各个函数的利弊
字符串输入函数
scanf:能够进行格式化的输入,但是不能接收空格,当我们需要接收一行的数据的时候会比较麻烦。
gets:是c语言早期提供的一个函数,主要用于接收一整行的数据。但是由于会导致缓冲区溢出,在C11中增加了它的安全版本gets_s,因为c语言标准委员会并没有对它进行强制性的要求,它在有些编译器中可能不被支持。gets_s中需要传递两个参数。第一个是我们要存储的缓冲区,第二个是输入数据最大的长度
fgets:这个是我们用的比较多的一个函数了,它需要传递三个参数。第一个是我们要存储的缓冲区,第二个是输入数据最大的长度,第三个参数是我们选择输入的位置。它更多的用于文件的输入,所以当我们想要从文件中读取数据的话,就传递一个文件的句柄。当我们想要从键盘进行输入的时候,就必须使用到stdin来读取,我们所有的键盘输入都存在stdin中。另外,它会读取到我们输入的换行符并存到缓冲区中,而gets则不会读取。
如果我们传递的输入的最大长度小于我们输入的长度就会发生缓冲区溢出。当发生缓冲区溢出时这两个函数的处理方式是不一样的。fgets只会接收最大长度的输入,其余的存在缓冲区中。gets_s则会抛出异常。
字符串输出函数
**puts**gets与puts一般是连在一起使用的,puts在输出的时候会在后面加上一个换行符。
**fputs**fgets与fputs一般是连在一起使用的,fputs不会加上换行符
上面的这些函数都可以用getchar()与putchar()来实现,大家可以试试。
0 0
- PoEdu_24_字符串处理(fgets与gets)
- 字符串处理函数fgets()和gets()
- C语言学习笔记 lesson17 字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- gets()与fgets()
- fgets() 与 gets()
- C语言字符串读取函数 gets()与fgets()
- fgets与gets比较分析
- fgets、gets与fputs、puts
- fgets与gets的区别
- fgets()与gets()的区别
- fgets与gets的区别
- fgets与gets的区别
- 字符串输入函数gets( ) fgets( ) scanf( )
- fgets、gets、scanf函数读入字符串比较
- 字符串的处理 gets 与sscanf
- fgets gets ......
- gets、fgets
- __doPostBack is not defined
- kNN算法
- instanceof 关键字
- sql之left join、right join、inner join的区别
- Serializable And Parcelable
- PoEdu_24_字符串处理(fgets与gets)
- 这是最好的时光 这是最坏的时光 v0.1.1.1
- 苹果版本跟新的提示
- (第七周项目2)建立链队算法库
- Java访问权限控制修饰符比较
- MySQL读写分离介绍及搭建
- hdu 1027(全排列)
- MAC地址和IP地址的关系
- 第七周项目3-——负数把正数赶出队列