黑马程序员技术交流社区

标题: 输入和输出函数优缺点的比较 [打印本页]

作者: lyz0925    时间: 2015-3-20 00:38
标题: 输入和输出函数优缺点的比较
****************输入的比较***************************
1.scanf  的缺点:
字符串输入的时候,不能有空格
如果用户输入的字符串长度大于了数组长度,没有空间存 \0
且不安全
2.gets()
  优点:字符串输入的时候,可以有空格
  缺点:不安全,如果输入的字符串的长度大于了数组的长度,会溢出

3.fgets()安全的字符串输入
  如果输入的字符串长度大于了字符数组的长度,此时,fgets会自动截断;

  fgets()函数的使用
   fgets(字符数组名,数组长度,stdin); //stdin 标准的输入

注意:fgets只能保存数组长度减一个字符的长度;当输入的内容小于数组长度的时候,多接收了一个换行(如何看它多接收了一个换行的标志呢,用输出ASCII码中的10进制数 即%d),解决的办法  把‘\n’替换成‘\0’,如下:
(if(s[strlen[s]-1])==’\n’)  s(strlen[s]-1)=’\0’;

***************************输出的比较******************************8
1.printf(“%s\n”,s)  可以格式化输出,但是不能自动换行

2.puts(数组名); 不可以格式化输出,但是可以自动换行

3.fputs() 可以输出一个字符串到文件中,   stdout
格式如下:fputs(数组名,stdout);
           fputs(s,stdout)   但是不能自动换行
(puts 是可以自动换行的)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2