一、數據輸出
C語言無I/O語句,I/O操作由函數實現
#include <stdio.h>
a、字符輸出函數putchar
格式: putchar( c );
參數: c為字符常量、變量或表達式。
功能:把字符c輸出到顯示器上。
返值:正常,為顯示的代碼值;
b、格式輸出函數printf
格式:printf(“格式控制串”,輸出表);
功能:按指定格式向顯示器輸出數據。
輸出表:要輸出的數據。
格式控制串:包含兩種信息。
格式說明:%[修飾符]格式字符,用於指定輸出格式。
普通字符:原樣輸出。
c、格式字符
d、字符串輸出函數puts
二、數據輸入
a、字符輸入函數getchar
格式: getchar( );
功能:從鍵盤讀一字符。
返值:正常,返回讀取的代碼值;出錯或結束鍵盤輸入,返回-1 (ctrl d)。
b、格式輸入函數scanf
格式: scanf(“格式控制串”,地址表);
功能:按指定格式從鍵盤讀入數據,存入地址表指定存儲單元中,並按回車鍵結束。
返值:正常,返回輸入數據個數。
地址表:變量的地址,常用取地址運算符&。
注:用“%c”格式符時,空格和轉義字符作為有效字符輸入,遇以下情況認為該數據結束:遇空格、TAB、或回車;遇非法輸入;遇寬度結束。
例1:
scanf(“%4d%2d%2d”,&yy,&mm,&dd);
若輸入19991015
則yy為1999, mm為10, dd為15
例2:
scanf(“%2d%*3d%2d”,&a,&b);
若輸入1234567
則a為12,b為67
例3:
scanf(“%c%c%c”,&c1,&c2,&c3);
若輸入abc
則c1為a, c2為空格, c3為b
例4:
ret=scanf(“%d%c%f”,&a,&b,&c);
若輸入1234a123o.26
則a為1234, b為‘a’, c為123
c、輸入函數留下的“垃圾”
方法1:用getchar()清除
方法2:用格式串中空格或“%*c”來“吃掉”
d、字符串輸入函數gets
格式: char * gets(char *s)
功能:從鍵盤輸入一以回車結束的字符串放入字符數組中,並自動加‘\0’。
說明1:輸入串長度應小於字符數組維數。
說明2:與scanf函數不同,gets函數並不以空格作為字符串輸入結束的標志。