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不能自動換行