A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Tmac90301 于 2015-11-19 23:33 编辑

scanf:标准输入函数,适用于所有类型的数据。用于获取字符串,遇到回车结束输入,回车符留在缓冲区,可能会影响到下一次的系统输入。给字符串初始化,存在越界的问题
getchar:单个字符获取函数,获取输入的第一个字符。可以通过循环,利用getchar函数给字符数组依次赋值。另外getchar经常用来处理scanf输入造成滞留回车符的问题

gets:获取字符串,头文件<string.h>中的函数。gets(字符串名),初始化该字符串。如果输入的字符数小于字符数组长度,会自动在最后一个字符之后添加'\0'表示字符串的结束。gets还有一个最大的优点,就是会自动吸收输入时多余的回车符,同时将其舍弃。这就不会影响到下次输入。但是和scanf一样,gets并不会判断访问越界的问题,如果输入字符数>=数组长度,会覆盖最后一个'\0',可能会有安全隐患。处理字符串,gets相对好用

fgets:除了给字符串初始化,多用于操作文件内容。优点是不会有访问越界问题,安全。如果被赋值的数组长度为n,输入超过n个字符,会自动读取n-1个字符,并在结尾处添加'\0'表示结束。也可以指定获取的字符数n。缺点是如果输入字符较少,会连回车符也一并吸收存入数组


1 个回复

正序浏览
you are right
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马