C語(yǔ)言 格式字符串
格式字符串用來(lái)定義輸入數(shù)據(jù)的格式,其形式與printf()的格式字符相似,也包含格式字符與普通字符兩部分。
(1)格式字符
格式字符串以“%”引導(dǎo),其形式為:
%[*][width][F/N|h|1]type
各部分介紹如下:
①類(lèi)型字符type
與scanf的規(guī)定相同,如%d代表要求輸入十進(jìn)制有符號(hào)整數(shù)等。具體見(jiàn)表所示。
類(lèi)型字符 | 功能說(shuō)明 |
d或i | 以十進(jìn)制有符號(hào)形式輸入整數(shù) |
U | 以十進(jìn)制無(wú)符號(hào)形式輸入整數(shù) |
o | 以八進(jìn)制無(wú)符號(hào)形式輸入整數(shù) |
X或乂 | 以十六進(jìn)制無(wú)符號(hào)形式輸入整數(shù) |
f | 以小教形式輸入實(shí)數(shù) |
C | 輸入單個(gè)字符 |
S | 輸入一個(gè)字符串 |
E或e; g或G | 與f作用相同,可以e、g替換f |
例如:
scanf ("%c%d%f%lf",&c.&a.&x.&y);
要求輸入一個(gè)字符、一個(gè)十進(jìn)制有符號(hào)整數(shù)、一個(gè)單精度數(shù)據(jù)、一個(gè)雙精度數(shù)據(jù)。
②寬度指示符width
寬度指示符width是一個(gè)十進(jìn)制正整數(shù)的形式,表示該輸入項(xiàng)最多可接收的字符個(gè)數(shù),也就是說(shuō),讀取輸入數(shù)據(jù)中相應(yīng)的n位,按需要的位數(shù)賦給相應(yīng)的變量,多余部分被舍棄。但讀取過(guò)程中如遇到空格、tab或其他不可轉(zhuǎn)換的字符,輸入個(gè)數(shù)可少于寬度指示。
例如:
int a,b,c;
scanf("%2d%2d%3d",&a.&b.&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
程序執(zhí)行時(shí),若輸入12345口67890,輸出結(jié)果為:
a=12,b=34?c=?5
第一個(gè)輸入項(xiàng)a的寬度指示符為2位,所以得到“12”;第二個(gè)輸入項(xiàng)b的寬度指示符為2位,所以得到“34”;第三個(gè)輸入項(xiàng)c的寬度指示符為3位,但當(dāng)讀取完“5 之后,遇到空格,空格認(rèn)為數(shù)據(jù)輸入結(jié)束,所以變量c只得到“5”。
點(diǎn)擊加載更多評(píng)論>>