官术网_书友最值得收藏!

1.3 格式化輸入/輸出

1.3.1 數據的輸入/輸出

【例1.3】閱讀并運行程序,分析結果了解輸入/輸出格式的使用。

程序代碼如下:

程序功能是從鍵盤輸入兩個整數,輸出兩數之和。scanf("%d,%d",&a,&b);語句完成輸入,參數“"%d,%d",&a,&b”表示以十進制形式從鍵盤輸入兩個數存放在變量a、b內;printf("a+b=%d",sum);語句輸出計算結果,參數“"a+b=%d",sum”表示在顯示屏上輸出字符“a+b=”,再跟上sum中的內容。

1.3.2 格式化輸出函數printf()

printf()函數的功能是按照給定的格式輸出數據,一般形式為:

printf("輸出格式字符串",輸出項);

其中,輸出格式字符串決定了數據的輸出格式,“%”與后面的格式符規定了對應輸出項的輸出格式,其他符號為非格式符按原樣輸出。

例如:若a=34,b=12,sum是a與b的和,則語句printf("a+b=%d",sum);的輸出結果為a+b=46。

其中,“%d”是輸出格式,對應輸出項sum,字符串“a+b=”是非格式符,按原樣輸出。

printf()函數常用格式符如表1-1所示。

表1-1 printf()函數常用格式符

(1)%d按整型數據的實際位數輸出。若要控制輸出數據的寬度,可以在d前加一個數字,如printf("%5d,%5d",a,b);,若a=123,b=121345,則輸出結果為□□123,121345。數據a不足5位,左邊用空格補足5位;數據b多于5位,按實際位數輸出。

(2)%c輸出一個字符。若以字符形式輸出一個整數,則輸出的是該整數對應的字符。如printf("%c,%c,%c",'A',65,'A'+1);輸出結果為A,A,B。'A'+1表示A的下一個字母。

(3)%s輸出一個字符串。如printf("%s","HELLO");輸出結果為HELLO。

(4)%f以實數形式輸出(帶小數點)。如a=12.34,則printf("%f,%.3f",a,a);輸出結果為12.340000,12.340。其中%.3f表示保留3位小數。

注意:

printf()函數中輸出格式符與輸出項的個數相同,類型一致,如下所示:

【例1.4】閱讀并運行程序,分析結果理解%d格式符的使用。

第一個printf()函數按整型數據輸出,符號“\n”表示換行,即下一個要輸出的數據另起一行輸出;第二個printf()函數按實數形式輸出,前一個x采用默認格式輸出6位小數,后一個x按5.2f格式輸出2位小數;第三個printf()函數輸出字符串,運行結果如圖1-5所示。讀者注意觀察輸出結果中的空格。

圖1-5 例1.4運行結果

1.3.3 格式化輸入函數scanf()

scanf()函數的功能是從鍵盤輸入數據,一般形式為:

scanf("輸入格式",輸入項);

其中,輸入格式中一般只使用格式符,格式符與printf()函數中格式類似。輸入項用于接收數據,如scanf("%d%d",&x,&y);表示將輸入的兩個整型數送到變量x和y,輸入的兩個數據用空格分隔。

scanf()函數格式說明也以%開頭,后跟格式符,常用的輸入格式符如表1-2所示。

表1-2 scanf()函數常用格式符

【例1.5】閱讀并運行程序,分析結果理解scanf()函數的使用。

圖1-6 例1.5運行結果

運行結果如圖1-6所示。

scanf()函數中輸入項變量前需要加符號“&”。若scanf()函數中多個輸入格式符用逗號分隔,則輸入的數據也必須用逗號分隔;若輸入格式符是連續的,則輸入的數據用空格分隔。

若有scanf("x=%d,y=%d,z=%d",&x,&y,&z);輸入語句,則輸入數據的格式必須是:x=12,y=23,z=45形式。由此可見在輸入格式中一般不加提示符,加了反而造成麻煩。

圖1-6中f2輸入的數據是34.55,而輸出為34.549999是由于進制間轉換的誤差所造成的,有興趣的讀者可進一步研究該問題。

1.3.4 字符輸出函數putchar()

putchar()函數的功能是輸出一個字符數據,如putchar(c);表示輸出變量c中的字符。

【例1.6】閱讀并運行程序,分析結果理解putchar()函數的使用。

圖1-7 例1.6運行結果

當putchar()函數中的參數為一個整數時,該函數輸出該整數所對應的ASCII字符。本例中c=65,對應的ASCII字符為大寫字母A,運行結果如圖1-7所示。

1.3.5 字符輸入函數getchar()

getchar()函數的功能是輸入一個字符數據,該函數不帶參數。程序中使用這個函數時,一般用一個字符變量接收輸入的字符,如c=getchar();。

【例1.7】閱讀并運行程序,分析結果理解getchar()函數的使用。

運行結果如圖1-8所示。

圖1-8 例1.7運行結果

當執行到語句“ch=getchar();”時,程序等待用戶輸入一個字符,按下【A】鍵后回車,得到以上結果?!皃rintf("ch=%c,ch=%d\n",ch,ch);”語句中第一個變量ch以字符形式輸出,第二個變量ch以帶符號的十進制形式輸出整數。

主站蜘蛛池模板: 黑水县| 肥西县| 三江| 河津市| 台中县| 隆昌县| 襄城县| 海伦市| 平罗县| 两当县| 林口县| 和硕县| 佛山市| 右玉县| 驻马店市| 庆元县| 福贡县| 循化| 玉环县| 平塘县| 交口县| 政和县| 玉林市| 日喀则市| 伊金霍洛旗| 利川市| 合水县| 天峻县| 吕梁市| 阜新| 内乡县| 仙桃市| 兴山县| 万全县| 赫章县| 福安市| 滦平县| 龙里县| 沙坪坝区| 信宜市| 木兰县|