printf(“format_string”, var1, var2 [,var3…])
返回值:輸出的字符數
轉換說明符
轉換說明 | 輸出 |
---|---|
%a | 浮點數,十六進制,p-記數法 |
%A | 浮點數,十六進制,P-記數法 |
%c | 一個字符 |
%d | int,十進制 |
%i | int,十進制 |
%u | unsigned int |
%o | int,八進制 |
%#o | int,八進制 (結果包含類型前綴) |
%x | int,十六進制 |
%#x | int,十六進制 (結果包含類型前綴) |
%ld | long int |
%lld | long lont int |
%f | float,十進制 |
%E | float,E記數法 |
%e | float,e記數法 |
%c | char,一個字符 |
%s | char array |
%p | 指針 |
%% | 一個%符號 |
修飾符
修飾符 | 輸出 | 示例 |
---|---|---|
標誌 | 物種標誌(+、-、空格、#和0) | %-10d |
digit(s) | 字段寬度的最小值,如果該字段不能容納要打印的數或者字符串,系統就會使用更寬的字段 | %4d |
.digit(s) | 精度,對於浮點型是有效數字的最大位數,對於字符串是要打印的最大字符數,對於整數是將要打印的數字的最小位數 | %5.2f 寬度爲5個字符,小數點後兩個數字 |
h | 和整數轉換說明符一起使用,表示一個short或unsigned short類型的數值 | %hu %hx %6.4hd |
hh | 和整數轉換說明符一起使用,表示一個signed char或unsigned char類型的數值 | %hhu |
j | 和整數轉換說明符一起使用,表示一個intmax_t或uintmax_t類型的數值 | %jd %8jx |
l | 和整數轉換說明符一起使用,表示long或unsigned long類型 | %ld %8lu |
ll | 和整數轉換說明符一起使用,表示long long或unsigned long long類型 | %lld %8llu |
L | 和浮點轉換說明符一起使用,表示一個long double類型 | %Lf %10.4Le |
t | 和整數轉換說明符一起使用,表示一個ptrdiff_t(與兩個指針之間的差相對應的類型) | %td %12ti |
z | 和整數轉換說明符一起使用,表示一個size_t(sizeof返回的類型) | %zd %12zx |
標誌符
標誌 | 意義 | 示例 |
---|---|---|
- | 項目是左對齊的, | %-20s |
+ | 有符號的值若爲正,則表示帶+號的符號,若爲負,則表示帶-號的符號 | %+6.2f |
space | 有符號的值若爲正,則顯示帶前導空格,若爲負,則帶-號的符號,+號標誌會覆蓋空格標誌 | % 6.2f |
# | 使用轉換說明的可選形式,若爲%o,則以0開始,若爲%x或%X,則以0x或0X開始,對於所有浮點型,#保證了即使不跟任何數字,也打印一個小數點字符,對於%g和%G格式,它防止尾隨0被刪除 | %#o %#8.0f %+#10.3E |
0 | 對於所有的數字格式,用前導0而不是空格填充字段寬度。如果出現-號標誌或者指定了精度(對於整數)則忽略該標誌 | %010d %08.3f |
scanf
返回值:返回==成功讀取==的字符個數
==注意:==
1. scanf會在遇到空格、換行、製表符處停止讀入,因此,如果輸入hello world,scanf只能讀取到hello
2. 如果使用scanf()來讀取基本變量類型的值,需要在變量名前加上&符
3. 如果使用scanf()把字符串讀入一個字符串數組重,不能使用&符