C語言程序設計-基于計算思維的培養(yǎng) 課件 第3章 格式化輸入與輸出_第1頁
C語言程序設計-基于計算思維的培養(yǎng) 課件 第3章 格式化輸入與輸出_第2頁
C語言程序設計-基于計算思維的培養(yǎng) 課件 第3章 格式化輸入與輸出_第3頁
C語言程序設計-基于計算思維的培養(yǎng) 課件 第3章 格式化輸入與輸出_第4頁
C語言程序設計-基于計算思維的培養(yǎng) 課件 第3章 格式化輸入與輸出_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章格式化輸入輸出目錄/Contents數(shù)據(jù)格式化輸入函數(shù)scanf()數(shù)據(jù)格式化輸出函數(shù)printf()數(shù)據(jù)的輸入與輸出C語言無I/O語句,I/O操作由函數(shù)實現(xiàn),如printf、scanf函數(shù),這些函數(shù)定義在庫函數(shù)<stdio.h>中#include<stdio.h>變量可以從鍵盤獲得數(shù)據(jù)嗎?C語言如何從鍵盤獲取數(shù)據(jù)?可以,通過scanf函數(shù)格式:scanf(“格式控制符”,變量地址);功能:從鍵盤按格式讀取數(shù)據(jù),并賦給變量。取地址運算符:&scanf(“%d”,&a);0x22fe48a問題的提出格式scanf(格式控制字符串,輸出項表列);scanf(“i=%f,j=%d",&a,&b);可以輸入若干任意類型的數(shù)據(jù)

函數(shù)名輸入數(shù)據(jù)地址表列普通字符格式說明格式化輸入scanf()非格式字符輸入數(shù)據(jù)以,分隔沒有時可以空格、Tab或回車分隔未加修飾的轉換字符在輸入流中被匹配的字符對應參數(shù)的類型c任何字符,包括空白chard可選的有符號十進制整數(shù)inti可選的有符號十進制整數(shù)、八進制整數(shù)或十六進制整數(shù)intu可選的有符號十進制整數(shù)unsignedo可選的有符號八進制整數(shù),不需要前導0unsignedx,X可選的有符號十六進制整數(shù),不允許前導0x或0Xunsignede,E,f,g,G可選的有符號浮點數(shù)floatpprintf()中的%p所產生的通常是無符號十六進制整數(shù)voidscanf()的格式轉換字符m表示數(shù)據(jù)占用的寬度l加在d、o、x、u前:輸入長整型加在f、e前:輸入雙精度型L加在f、e前:輸入longdouble型scanf()的格式修飾符#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題1:當要求程序輸出結果為:a=12,b=34時,用戶應該如何輸入數(shù)據(jù)?

1234↙a=12,b=34↙a=12,b=34↙輸入數(shù)據(jù)的格式控制#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題2:當限定用戶輸入數(shù)據(jù)以逗號為分隔符,即輸入數(shù)據(jù)格式為:12,34↙時,應修改程序中的哪條語句?怎樣修改?,

輸入數(shù)據(jù)的格式控制#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題3:語句scanf("%d%d",&a,&b);修改為scanf("a=%d,b=%d",&a,&b);時,用戶應該如何輸入數(shù)據(jù)?a=12,b=34↙輸入數(shù)據(jù)的格式控制#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題4:如果程序第5行語句輸入項修改為a,b,那么結果又會如何呢?

a,b輸入數(shù)據(jù)的格式控制【例3.1】

編寫程序,按如下數(shù)據(jù)輸入格式從鍵盤輸入一個整數(shù)乘法表達式:整數(shù)1*整數(shù)2然后計算并輸出該表達式的計算結果,輸出格式如下:整數(shù)1*整數(shù)2=計算結果C格式符問題及解決辦法#include<stdio.h>main(){

inti,j;

charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}Pleaseentertheexpressioni*j

第1次測試12*3↙124199288=4199300C格式符問題及解決辦法C格式符問題及解決方法#include<stdio.h>main(){

inti,j;

charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}Pleaseentertheexpressioni*j

第2次測試123↙123=36C格式符問題及解決辦法#include<stdio.h>main(){

inti,j;

charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}Pleaseentertheexpressioni*j

第3次測試12*3↙12*3=36#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:希望得到的運行結果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:實際得到的結果好像很奇怪呀!12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12floatnumber:3.500000#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");

getchar();/*將存于緩沖區(qū)中的回車字符讀入,避免被后面的變量作為有效字符讀入*/scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:程序修改后得到的運行結果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf(“%c”,&b);/*第2種解決方案:在%c前加一個空格*/printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }#include<stdio.h>main(){

inti,j,mul;

charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}12*3↙12*3↙12↙*↙3↙C格式符問題及解決辦法scanf("%d,%f\n",&a,&b);scanf("%d,%f",a,b);scanf("%7.2f",&a);幾點忠告不要拘泥于細節(jié)不要死記硬背在使用中慢慢掌握注意!格式輸入函數(shù)常見錯誤格式化輸出printf()

格式printf(格式控制字符串,輸出項表列);printf("a=%db=%f",a,b);

可以輸出若干任意類型的數(shù)據(jù)

函數(shù)名可選輸出表列普通字符格式說明轉換字符對應的參數(shù)如何顯示c作為字符d,i作為十進制整數(shù)u作為無符號十進制整數(shù)o作為無符號八進制整數(shù)x,X作為無符號十六進制整數(shù)e,E作為指數(shù)形式的浮點數(shù),如1.234e+3f作為帶小數(shù)點的浮點數(shù),如3.1415g,G以e(E)或f格式,都是較短的s作為串p相應的參數(shù)是指向void的指針,按十六進制數(shù)顯示它的值n相應的參數(shù)是指向一個整數(shù)的指針,該整數(shù)是至今成功寫到流或緩沖區(qū)中的字符個數(shù),對參數(shù)不做轉換%使用%%把%寫入輸出流,沒有相應的參數(shù)被轉換printf()的轉換字符printf()格式修飾符m表示數(shù)據(jù)占用的最小寬度數(shù)據(jù)寬度大于m,按實際寬度輸出數(shù)據(jù)寬度小于m時,補空格n對實數(shù)表示輸出n位小數(shù)對字符串表示最多輸出的字符個數(shù)l長整型整數(shù),加在d、o、x、u前Llongdouble型數(shù),加在f、e、g前-

改變輸出內容的對齊方式默認為右對齊格式化輸出printf()【例3.2】

下面程序演示格式化顯示數(shù)字舉例。#include<stdio.h>intmain(){ inti=1234; doublex=0.123456789; printf("|%d|%6d|%7o|%-9x|%-#9x|\n",i,i,i,i,i); printf("|%10.5f|%-12.5e|\n",x,x); return0;}程序的運行結果如下:|1234|1234|2322|4d2|0x4d2||0.12346|1.23457e-001|格式化輸出printf()float的格式:%f

一般格式:

%[<最小域寬>.<小數(shù)位數(shù)>]fExample:printf("Valueis:%10.4f",32.6784728);Valueis:32.678510characters4digits【例3.3】

下面程序演示格式化顯示字符和串舉例。#include<stdio.h>intmain(){ charch='W'; chars[]="Bluemoon!"; printf("|%c|%2c|%-3c|\n",ch,ch,ch); printf("|%s|%3s|%.6s|%-11.8s|\n",s,s,s,s); return0;}格式化輸出printf()程序運行結果如下:|W|W|W||Bluemoon!|Bluemoon!|Bluem|Bluemoo|【例3.4】

編寫一個程序,對用戶錄入的產品信息進行格式化。程序運行后需得到如下運行結果:Enteritemnumber:456Enterunitp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論