C語言 格式字符串
格式字符串用來定義輸入數(shù)據(jù)的格式,其形式與printf()的格式字符相似,也包含格式字符與普通字符兩部分。
(1)格式字符
格式字符串以“%”引導,其形式為:
%[*][width][F/N|h|1]type
各部分介紹如下:
①類型字符type
與scanf的規(guī)定相同,如%d代表要求輸入十進制有符號整數(shù)等。具體見表所示。
類型字符 | 功能說明 |
d或i | 以十進制有符號形式輸入整數(shù) |
U | 以十進制無符號形式輸入整數(shù) |
o | 以八進制無符號形式輸入整數(shù) |
X或乂 | 以十六進制無符號形式輸入整數(shù) |
f | 以小教形式輸入實數(shù) |
C | 輸入單個字符 |
S | 輸入一個字符串 |
E或e; g或G | 與f作用相同,可以e、g替換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”。
點擊加載更多評論>>