位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 格式字符串

提問人:劉團圓發(fā)布時間:2020-11-28

格式字符串用來定義輸入數(shù)據(jù)的格式,其形式與printf()的格式字符相似,也包含格式字符與普通字符兩部分。

(1)格式字符

格式字符串以“%”引導,其形式為:

    %[*][width][F/N|h|1]type

各部分介紹如下:

①類型字符type

與scanf的規(guī)定相同,如%d代表要求輸入十進制有符號整數(shù)等。具體見表所示。

類型字符

功能說明

di

以十進制有符號形式輸入整數(shù)

U

以十進制無符號形式輸入整數(shù)

o

以八進制無符號形式輸入整數(shù)

X或乂

以十六進制無符號形式輸入整數(shù)

f

以小教形式輸入實數(shù)

C

輸入單個字符

S

輸入一個字符串

Ee; gG

f作用相同,可以eg替換f

例如:

scanf ("%c%d%f%lf",&c.&a.&x.&y);

要求輸入一個字符、一個十進制有符號整數(shù)、一個單精度數(shù)據(jù)、一個雙精度數(shù)據(jù)。

②寬度指示符width

寬度指示符width是一個十進制正整數(shù)的形式,表示該輸入項最多可接收的字符個數(shù),也就是說,讀取輸入數(shù)據(jù)中相應的n位,按需要的位數(shù)賦給相應的變量,多余部分被舍棄。但讀取過程中如遇到空格、tab或其他不可轉(zhuǎn)換的字符,輸入個數(shù)可少于寬度指示。

    例如:

    int a,b,c;

    scanf("%2d%2d%3d",&a.&b.&c); 

    printf("a=%d,b=%d,c=%d\n",a,b,c);

程序執(zhí)行時,若輸入12345口67890,輸出結(jié)果為:

    a=12,b=34?c=?5

    第一個輸入項a的寬度指示符為2位,所以得到“12”;第二個輸入項b的寬度指示符為2位,所以得到“34”;第三個輸入項c的寬度指示符為3位,但當讀取完“5 之后,遇到空格,空格認為數(shù)據(jù)輸入結(jié)束,所以變量c只得到“5”。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(0)
返回頂部