输入和输出的总结(c语言)

c语言中有多种的输入和输出方式,下面就简单总结一下:

一.输入的三种方式

  (1)scanf 

      scanf 函数可以在变量中使用,也可以在数组中使用,当然指针上也能用到,是一个很好的输入函数.scanf是一个格式输入,比如scanf("%d-%d-%d",&i,&j,&z),在控制台上输入的时候,应该以双引号的格式输入即2015-3-19的格式输入,否则会出错!

scanf的缺点:

      在字符串输入的时候,不能有空格.遇到空格会自动结束输入;

     另外,如果用户输入的字符串长度大于数组长度时,没有空间存'\0'这个结束符!

      还有一个缺点就是,scanf属于不安全类型的输入法.

(2)gets函数输入法

     使用的例子:

                    char  arr[10]; 

       gets(arr);

       printf("%s",arr);

     优点:字符串输入的时候,可以有空格;

     缺点:不安全,如果输入的字符串的长度大于了数组的长度,会溢出

(3)fgets()函数输入法

     fgets()函数的使用:fgets(字符数组名,数组长度,stdin) ,其中,stdin是指标准的输入

                       例子:int arr[10];

                             fgets(arr,10,stdin);

     fgets()的优点:如果输入的字符串长度大于可字符数组的长度,此时,fgets会自动截断

    注意事项:fgets只能保存的长度为数组长度减一个字符,因为他要用一个字符长度来存放'\n';

                 当输入的内容小于数组长度的时候,多接收了一个换行字符(要检验它多接收了一个换行的标志,用输入ASCII码的数字形式输出 即%d,'\n'在ASCII的十进制数为10);其解决办法把'\n'替换成'\0'

如下:

       (if(s[stlen[s]-1])=='\n') { s[strlen[s]-1='\0';}

 

二.输入的三种函数

 (1)printf()函数

     printf是格式化输出,例如printf("%d,%d,%d",i,j,k)在控制台上的输出格式为 2015,3,19(因为上引号中用括号隔开,所以控制台也用逗号隔开;如果换成空格隔开,控制台上显示的也是用空格隔开),简而言之,printf的格式是怎么样的,显示出来的格式就是什么样的!

    缺点:printf不能自动换行

(2)puts()函数输出

    puts函数克服了printf不能自动换行的缺点,可以自动换成;但是却不可以像printf那种可以格式化输出.

   使用格式为:puts(数组名);

(3)fputs()函数输出

    fputs()可以输出一个字符串到文件中,格式如下:

            fputs(数组名,stdout),其中,stdout 标准的输出

     例子:fgets(s    ,  stdout)

  缺点:fputs不能自动换行

posted @ 2015-03-19 23:39  一人前行  阅读(2975)  评论(0编辑  收藏  举报