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不能自动换行