標籤:
c語言中有多種的輸入和輸出方式,下面就簡單總結一下:
一.輸入的三種方式
(1)scanf
scanf 函數可以在變數中使用,也可以在數組中使用,當然指標上也能用到,是一個很好的輸入函數.scanf是一個格式輸入,比如scanf("%d-%d-%d",&i,&j,&z),在控制台上輸入的時候,應該以雙引號的格式輸入即2015-3-19的格式輸入,否則會出錯!
scanf的缺點:
在字串輸入的時候,不能有空格.遇到空格會自動結束輸入;
另外,如果使用者輸入的字串長度大於數組長度時,沒有空間存‘\0‘這個結束符!
還有一個缺點就是,scanf屬於不安全類型的IME.
(2)gets函數IME
使用的例子:
char arr[10];
gets(arr);
printf("%s",arr);
優點:字串輸入的時候,可以有空格;
缺點:不安全,如果輸入的字串的長度大於了數組的長度,會溢出
(3)fgets()函數IME
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不能自動換行
輸入和輸出的總結(c語言)