C語言學習(二)資料輸入輸出

2022-03-30 09:42:56 字數 3848 閱讀 7665

字元輸入函式:  getchar       字元輸出函式:putchar     

格式輸入函式: scanf 格式輸出函式: printf

字串輸入函式:gets 字數串輸出函式:puts

字元輸出函式putchar(c)

#includevoid

main()

字元輸入函式getchar()

#includevoid

main()

%d:以帶符號的十進位制形式輸出整數

%o:以八進位制無符號形式輸出整數

%x:以十六進製制無符號形式輸出整數

%u:以無符號十進位制形式輸出整數

%c:以字元形式輸出,只輸出乙個字元

%s:輸出字串

%f:以小數形式輸出單,雙精度數,隱含輸出六位小數

%e:以指數形式輸出實數

%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0

1.2.1、d格式

1.%d: 按十進位制整型資料的實際長度輸出。

2.%md: m為指定的輸出欄位的寬度。如果資料的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。

例: printf(″%4d,%4d″,a,b);

若a=123,d=12345

,則輸出結果為

123,12345

3.%ld:輸出長整型資料。

例: long a=

135790;/*

定義a為長整型變數

*/printf(″%ld″,a);

1.2.2、o格式

1.輸出的數值不帶符號,符號位也一起作為八進位制數的一部分輸出。

例:int a=-1

;   printf(

"%d,%o

",a,a);

-1在記憶體單元中的存放形式(以補碼形式存放)如下:

1111111111111111

輸出為:

-1,177777

2.不會輸出帶負號的八進位制整數。對長整數(long型)可以

3.用「%lo」格式輸出。還可以指定字段寬度,

例:printf(

"%8o

",a);

輸出為:

177777。 (數字前有2個空格)

1.2.3、x格式

以十六進製制數形式輸出整數。同樣不會出現負的十六進製制數。

例:int a=-1;

printf(″%x,%o,%d″,a,a,a);

輸出結果為:

ffff,

177777,-1

可以用「%lx」輸出長整型數,也可以指定輸出欄位的寬度

例: 「%12x」

1.2.4、u格式

用來輸出unsigned型資料.

乙個有符號整數(int型)也可以用%u格式輸出

乙個unsigned型資料也可以用%d格式輸出

unsigned型資料也可用%o或%x格式輸出

1.2.5、c格式

c格式符,用來輸出乙個字元,也可指定寬度用空格填充

1.2.6、s格式

1.%s,輸出字串

例如:   printf(″%s″,″china″)

輸出字串「china」(不包括雙引號)。

2.%ms,輸出的字串佔m列,若串長大於m,則全部輸出,若串長小於m,則左補空格。

3.%-ms,若串長小於m,字串向左靠,右補空格。

4.%m.ns,輸出佔m列,只取字串中左端n個字元,輸出在m列的右側,左補空格。

5.%-m.ns,n個字元輸出在m列的左側,右補空格,若n〉m,m自動取n值。

1.2.7、f格式

1.%f。不指定字段寬度,由系統自動指定字段寬度,使整數部分全部輸出,並輸出6位小數。應當注意,在輸出的數字中並非全部數字都是有效數字。單精度實數的有效位數一般為7位

2.%m.nf。指定輸出的資料共佔m列,其中有n位小數。如果數值長度小於m,則左端補空格

3.%-m.nf與%m.nf基本相同,只是使輸出的數值向左端靠,右端補空格

1.2.8、e格式

1.%e。不指定輸出資料所佔的寬度和數字部分的小數字數.

例:printf(″%e″,

123.456

);  輸出:

1.234560 e+002

所輸出的實數共佔13列寬度。(注:不同系統的規定略有不同)

2.%m.ne和%-m.ne。 m、n和「-」字元的含義與前相同

此處n指擬輸出的資料的小數部分(又稱尾數)的小數字數

若f=123.456

,則:  printf(

"%e %10e %10.2e %.2e %-10.2e

",f,f,f,f,f);

輸出如下:

1.234560e+002

1.234560e+002

1.23e+002

1.23e+002

1.23e+002

13列 13列 10列 9列 10列

1.2.9、g格式

根據數值的大小,自動選f格式或e格式(選擇輸出時佔寬度較小的一種),且不輸出無意義的零。

例:若f=

123.468

,則  printf(″%f %e %g″,f,f,f);

輸出如下:

123.468000

1.234680e+002

123.468

10列 13列 10列

按照變數在記憶體的位址將變數值存進去

#includevoid

main()

說明:

1.對unsigned型變數所需要的資料,可以用%u,%d或%o,%x格式輸入

2.可以指定輸入資料所佔的列數,系統自動按它擷取所需資料

3.如果在%後有乙個「*」附加說明符,表示跳過它指定的列數

4.輸入資料時不能規定精度

注意:

(1

)scanf函式中的「格式控制」後面應當是變數位址,而不應是變數名(2

) 如果在「格式控制」字串中除了格式說明以外還有其他字元,則在輸入資料時在對應位置應輸入與這些字元相同的字元(3

) 在用「%c」格式輸入字元時,空格字元和「轉義字元」都作為有效字元輸入 (4

) 在輸入資料時,遇以下情況時認為該資料結束

① 遇空格,或按「回車」或「跳格」(tab)鍵;

② 按指定的寬度結束,如「%3d」,只取3列;

③ 遇非法輸入

字元陣列的輸入輸出可以有兩種方法:
1. 逐個字元輸入輸出。用格式符「%c」輸入或輸出乙個字元。

2. 將整個字串一次輸入或輸出。用「%s」格式符,意思是對字串的輸入輸出

用puts函式輸出的字串中可以包含轉義字元
char str[]=;

puts(str);

gets(字元陣列) 其作用是從終端輸入乙個字串到字元陣列,並且得到乙個函式值。該函式值是字元陣列的起始位址。
gets(str) 等待鍵盤錄入:

注意:scanf不能接受空格、回車、製表符tab,而gets可以接受。相同點:字串接受結束後自動新增『\0』

C語言學習 1 3輸入輸出

常使用的鍵盤輸入函式scanf,輸出函式printf,字元輸入函式getchar,字元輸出函式putchar 函式定義 int putchar int ch ch型別可以是int也可以char 例 putchar a 字元輸出 putchar 101 轉移字元輸出 從終端 輸入裝置 輸入乙個字元 函...

C語言學習 輸入輸出與變數

輸入scanf 特殊字元變數 輸出輸入都必須使用佔位符 a,a 讀入乙個浮點值 僅c99有效 c 讀入乙個字元 d 讀入十進位制整數 i 讀入十進位制,八進位制,十六進製制整數 o 讀入八進位制整數 x,x 讀入十六進製制整數 s 讀入乙個字串,遇空格 製表符或換行符結束。f,f,e,e,g,g 用...

C語言學習筆記 檔案輸入輸出

用於存放檔案資訊的結構體型別為 file 由系統定義 包含在內。檔案類別 1 程式檔案 內容為程式 2 資料檔案 內容為資料,供程式執行使用。二進位制檔案 資料以二進位制形式儲存 又稱映像檔案 執行更快 資料的儲存 1 字元一律以asc 的形式儲存 2 數值型兩種方式都可以 例如 表示10000 1...