c函数scanf(),printf()等常用格式字符串
生活随笔
收集整理的這篇文章主要介紹了
c函数scanf(),printf()等常用格式字符串
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
%d ? 短整形,一般占兩個字節(jié)
%u ? 無符號短整形
%ld ?長整形,一般占四個字節(jié)
%c ? 字符型
%s ? ?字符串 主要用在輸入輸出函數(shù):scanf(),printf()里
/a:蜂鳴,響鈴?
/b:回退:向后退一格?
/f:換頁?
/n:換行,光標到下行行首?
/r:回車,光標到本行行首?
/t:水平制表?
/v:垂直制表?
//:反斜杠?
/':單引號?
/":雙引號?
/?:問號?
/ddd:三位八進制?
/xhh:二位十六進制?
/0:空字符(NULL),什么都不做?
注:?
1,/v垂直制表和/f換頁符對屏幕沒有任何影響,但會影響打印機執(zhí)行響應(yīng)操作。?
2,/n其實應(yīng)該叫回車換行。換行只是換一行,不改變光標的橫坐標;回車只是回到行首,不改變光標的縱坐標。
3,/t 光標向前移動四格或八格,可以在編譯器里設(shè)置?
4,/' 在字符里(即單引號里)使用。在字符串里(即雙引號里)不需要,只要用 ' 即可。?
5,/? 其實不必要。只要用 ? 就可以了(在windows VC6 和tc2 中驗證)。 ?
格式控制符參考:
格式輸出字符:printf
使用:向終端輸出若干個類型任意的數(shù)據(jù)。
形式:printf (格式控制符,輸出列表)
說明:
格式控制符:% 格式說明引導(dǎo)符。
- 指定左對齊輸出。
0 指定空位填零。
m.n ?指定輸出域?qū)挾燃熬取?br />
l.h ?輸出長度的修正。
格式字符 指定輸出的數(shù)據(jù)類型。
說明:
格式字符:指定輸出項的數(shù)據(jù)類型和輸出格式。
d 有符號十進制整數(shù)。
o 無符號八進制數(shù)。
x 無符號十六進制數(shù)。(小寫的x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數(shù),大寫的X則用大寫的ABCDEF來表示10到15之間的數(shù))
u 不帶符號的十進制整數(shù)。
基本整型:兩個字節(jié),十六個bit(位)
11 11 11 11 11 11 11 11 等于 65535.
11 11 11 11 11 11 11 10 ? ? 等于 -2.
負數(shù)的第一位(符號位)為1。負數(shù)的補碼怎么得到:原碼取反加一。2的二進制數(shù)為:00 00 00 00 00 00 00 10,取反就等于11 11 11 11 11 11 11 01,然后加1,二進制數(shù)逢二進一,所以就得出-2 的二進制代碼。
有符號的整型數(shù)可以用 %d 輸出。
無符號的整型數(shù)可以用 %u 輸出。
電腦里存的數(shù)字都是二進制數(shù),最高位是符號位還是數(shù)據(jù)位,可以由輸出格式符來控制。
二進制數(shù)轉(zhuǎn)換八進制數(shù):三個 1 對應(yīng)一個 7 。
二進制數(shù)鏨十六進制數(shù):四位二進制對應(yīng)一位十六進制,四個1 對應(yīng)一個 f。
說明:
格式字符:c ? 輸出一個字符。
s 輸出一個字符串。
e 以指數(shù)形式輸出實型數(shù)。
f ? ? 以小數(shù)形式輸出實型數(shù)。
g 自動決定輸出格式為e和f中較短的一種,不打印無效的零。
% 輸出%。
注意:對于單精度數(shù),使用 %f 格式符輸出時,僅前7位是有效數(shù)字,小數(shù)6位。
對于雙精度數(shù),使用 %lf 格式符輸出時,前16位是有效數(shù)字,小數(shù)6位。
長度修正符
l:對整型指定長整型long
例:%ld , %lx , %lo , %lu
對實型指定雙精度double
? ? ? ? ? 例:%lf
? ?h:只用于整型的格式字符修正為short
? ? ? ? ? 例:%hd , %hx , %ho , %hu
對64位整數(shù)的輸入輸出,在POJ上的C++環(huán)境下(即VC++),64位整數(shù)是:
__int64
輸入輸出格式為”%I64d”.
在G++環(huán)境下, 64位整數(shù)是
long long
輸入輸出格式為”%lld”.
域?qū)捈熬鹊拿枋?br />
M:域?qū)?#xff0c;即對應(yīng)的輸出項在輸出設(shè)備上所占字符數(shù)
若:實際數(shù)據(jù)寬度>M,按實際數(shù)據(jù)寬度輸出。
實際數(shù)據(jù)寬度<M,左邊補空。
N:精度,說明輸出的實型數(shù)的小數(shù)位數(shù)。
幾點說明:
編譯程序只是檢查printf 函數(shù)的調(diào)用形式,不分析格式控制字符串,如果格式字符與輸出項的類型不匹配,不進行類型轉(zhuǎn)換。(輸出的數(shù)為隨機)
格式字符要用小寫字母。
格式控制字符串中可以包含轉(zhuǎn)義字符。
格式控制字符串中的普通字符則原樣輸出。
輸出項的參數(shù)除了常數(shù)、變量外還可以是表達式、函數(shù)調(diào)用。
? ? ? ?%g,%f和%e這三個格式用于打印浮點值。
? ? ? ? ? ? ? ? ?%g格式用于打印那些不需要按列對齊的浮點數(shù)特別有用。其作用有二:
? ? ? ? ? ? ? ? ?一,去掉該數(shù)尾多余的零(沒有達到六位的數(shù))
? ? ? ? ? ? ? ? ?二,保留六位有效數(shù)字(多余六位的)
? ? ? ? ? ? ? ? ?%e格式用于打印浮點數(shù)時,一律顯示地使用指數(shù)形式:例如:輸出圓周率時是:3.141593e+00
? ? ? ? ? ? ? ? 兩者的區(qū)別:
? ? ? ? ? ? ? ? %g格式打印出的數(shù)是總共6位有效數(shù)字
? ? ? ? ? ? ? ? %e格式打印出小數(shù)點后的6位有效數(shù)字
? ? ? ? ? ? ? ? %f禁止使用指數(shù)形式來表示浮點數(shù)。因此圓周率輸出為:3.141593
? ? ? ? ? ? ? ?(但注意它的精度要求:也是小數(shù)點后6位有效數(shù)字)
? ? ? ? ? ? ? ?(8)%%格式用于打印一個%字符。
? ? ? ? ? ? ? (9)%E和%G只是在輸出時用大寫字母(E)代替了小寫字母(e)
? ? ? ? ? ? ? ? ?輸出正負號的技巧,例如:
? ? ? ? ? ? ? ?printf("%+d %+d %+d/n",-5,0,5);
? ? ? ? ? ? ? ?只要在中間加個“+”號就行。作用是輸出符號位(即,數(shù)的正負號)
? ? ? ? ? ? ? ?如果不希望正數(shù)的前面出現(xiàn)‘+’號,可用下面的方法
? ? ? ? ? ? ? ?只要在中間加個“ ”號(即:空格)就行。例如:
? ? ? ? ? ? ? ?作用:如果一個數(shù)是非負數(shù),就在它的前面插入一個空格。
? ? ? ? ? ? ? ?int i;
? ? ? ? ? ? ? ?for(i=-3;i<=3;i++)
? ? ? ? ? ? ? ? ? ? ? ?printf("% d/n",i); //注意%和d之間有一個空格
? ? ? ? ? ? ?
? ? ? ? ? ? ? ?sscanf()的使用技巧:
? ? ? ? ? ? ? ?分解字符串,很多功能都需要正則表達式的知識,所以就介紹一下最簡單的幾種用sscanf來分解字符串 的用法。
? ? ? ? ? ? ? ?1.
? ? ? ? ? ? ? ?char str[100],str1[100],str2[100];
? ? ? ? ? ? ? ?gets(str);
? ? ? ? ? ? ? ?sscanf(str,”%s%s”,str1,str2);
? ? ? ? ? ? ? ?將讀入的一整行字符串按空格,制表符或回車符分割成兩個字符串。
? ? ? ? ? ? ? ?2
? ? ? ? ? ? ? ?取指定長度的字符串。如在下例中,取最大長度為4字節(jié)的字符串。
? ? ? ?sscanf("123456 ", "%4s", str);
%u ? 無符號短整形
%ld ?長整形,一般占四個字節(jié)
%c ? 字符型
%s ? ?字符串 主要用在輸入輸出函數(shù):scanf(),printf()里
/a:蜂鳴,響鈴?
/b:回退:向后退一格?
/f:換頁?
/n:換行,光標到下行行首?
/r:回車,光標到本行行首?
/t:水平制表?
/v:垂直制表?
//:反斜杠?
/':單引號?
/":雙引號?
/?:問號?
/ddd:三位八進制?
/xhh:二位十六進制?
/0:空字符(NULL),什么都不做?
注:?
1,/v垂直制表和/f換頁符對屏幕沒有任何影響,但會影響打印機執(zhí)行響應(yīng)操作。?
2,/n其實應(yīng)該叫回車換行。換行只是換一行,不改變光標的橫坐標;回車只是回到行首,不改變光標的縱坐標。
3,/t 光標向前移動四格或八格,可以在編譯器里設(shè)置?
4,/' 在字符里(即單引號里)使用。在字符串里(即雙引號里)不需要,只要用 ' 即可。?
5,/? 其實不必要。只要用 ? 就可以了(在windows VC6 和tc2 中驗證)。 ?
格式控制符參考:
格式輸出字符:printf
使用:向終端輸出若干個類型任意的數(shù)據(jù)。
形式:printf (格式控制符,輸出列表)
說明:
格式控制符:% 格式說明引導(dǎo)符。
- 指定左對齊輸出。
0 指定空位填零。
m.n ?指定輸出域?qū)挾燃熬取?br />
l.h ?輸出長度的修正。
格式字符 指定輸出的數(shù)據(jù)類型。
說明:
格式字符:指定輸出項的數(shù)據(jù)類型和輸出格式。
d 有符號十進制整數(shù)。
o 無符號八進制數(shù)。
x 無符號十六進制數(shù)。(小寫的x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數(shù),大寫的X則用大寫的ABCDEF來表示10到15之間的數(shù))
u 不帶符號的十進制整數(shù)。
基本整型:兩個字節(jié),十六個bit(位)
11 11 11 11 11 11 11 11 等于 65535.
11 11 11 11 11 11 11 10 ? ? 等于 -2.
負數(shù)的第一位(符號位)為1。負數(shù)的補碼怎么得到:原碼取反加一。2的二進制數(shù)為:00 00 00 00 00 00 00 10,取反就等于11 11 11 11 11 11 11 01,然后加1,二進制數(shù)逢二進一,所以就得出-2 的二進制代碼。
有符號的整型數(shù)可以用 %d 輸出。
無符號的整型數(shù)可以用 %u 輸出。
電腦里存的數(shù)字都是二進制數(shù),最高位是符號位還是數(shù)據(jù)位,可以由輸出格式符來控制。
二進制數(shù)轉(zhuǎn)換八進制數(shù):三個 1 對應(yīng)一個 7 。
二進制數(shù)鏨十六進制數(shù):四位二進制對應(yīng)一位十六進制,四個1 對應(yīng)一個 f。
說明:
格式字符:c ? 輸出一個字符。
s 輸出一個字符串。
e 以指數(shù)形式輸出實型數(shù)。
f ? ? 以小數(shù)形式輸出實型數(shù)。
g 自動決定輸出格式為e和f中較短的一種,不打印無效的零。
% 輸出%。
注意:對于單精度數(shù),使用 %f 格式符輸出時,僅前7位是有效數(shù)字,小數(shù)6位。
對于雙精度數(shù),使用 %lf 格式符輸出時,前16位是有效數(shù)字,小數(shù)6位。
長度修正符
l:對整型指定長整型long
例:%ld , %lx , %lo , %lu
對實型指定雙精度double
? ? ? ? ? 例:%lf
? ?h:只用于整型的格式字符修正為short
? ? ? ? ? 例:%hd , %hx , %ho , %hu
對64位整數(shù)的輸入輸出,在POJ上的C++環(huán)境下(即VC++),64位整數(shù)是:
__int64
輸入輸出格式為”%I64d”.
在G++環(huán)境下, 64位整數(shù)是
long long
輸入輸出格式為”%lld”.
域?qū)捈熬鹊拿枋?br />
M:域?qū)?#xff0c;即對應(yīng)的輸出項在輸出設(shè)備上所占字符數(shù)
若:實際數(shù)據(jù)寬度>M,按實際數(shù)據(jù)寬度輸出。
實際數(shù)據(jù)寬度<M,左邊補空。
N:精度,說明輸出的實型數(shù)的小數(shù)位數(shù)。
幾點說明:
編譯程序只是檢查printf 函數(shù)的調(diào)用形式,不分析格式控制字符串,如果格式字符與輸出項的類型不匹配,不進行類型轉(zhuǎn)換。(輸出的數(shù)為隨機)
格式字符要用小寫字母。
格式控制字符串中可以包含轉(zhuǎn)義字符。
格式控制字符串中的普通字符則原樣輸出。
輸出項的參數(shù)除了常數(shù)、變量外還可以是表達式、函數(shù)調(diào)用。
? ? ? ?%g,%f和%e這三個格式用于打印浮點值。
? ? ? ? ? ? ? ? ?%g格式用于打印那些不需要按列對齊的浮點數(shù)特別有用。其作用有二:
? ? ? ? ? ? ? ? ?一,去掉該數(shù)尾多余的零(沒有達到六位的數(shù))
? ? ? ? ? ? ? ? ?二,保留六位有效數(shù)字(多余六位的)
? ? ? ? ? ? ? ? ?%e格式用于打印浮點數(shù)時,一律顯示地使用指數(shù)形式:例如:輸出圓周率時是:3.141593e+00
? ? ? ? ? ? ? ? 兩者的區(qū)別:
? ? ? ? ? ? ? ? %g格式打印出的數(shù)是總共6位有效數(shù)字
? ? ? ? ? ? ? ? %e格式打印出小數(shù)點后的6位有效數(shù)字
? ? ? ? ? ? ? ? %f禁止使用指數(shù)形式來表示浮點數(shù)。因此圓周率輸出為:3.141593
? ? ? ? ? ? ? ?(但注意它的精度要求:也是小數(shù)點后6位有效數(shù)字)
? ? ? ? ? ? ? ?(8)%%格式用于打印一個%字符。
? ? ? ? ? ? ? (9)%E和%G只是在輸出時用大寫字母(E)代替了小寫字母(e)
? ? ? ? ? ? ? ? ?輸出正負號的技巧,例如:
? ? ? ? ? ? ? ?printf("%+d %+d %+d/n",-5,0,5);
? ? ? ? ? ? ? ?只要在中間加個“+”號就行。作用是輸出符號位(即,數(shù)的正負號)
? ? ? ? ? ? ? ?如果不希望正數(shù)的前面出現(xiàn)‘+’號,可用下面的方法
? ? ? ? ? ? ? ?只要在中間加個“ ”號(即:空格)就行。例如:
? ? ? ? ? ? ? ?作用:如果一個數(shù)是非負數(shù),就在它的前面插入一個空格。
? ? ? ? ? ? ? ?int i;
? ? ? ? ? ? ? ?for(i=-3;i<=3;i++)
? ? ? ? ? ? ? ? ? ? ? ?printf("% d/n",i); //注意%和d之間有一個空格
? ? ? ? ? ? ?
? ? ? ? ? ? ? ?sscanf()的使用技巧:
? ? ? ? ? ? ? ?分解字符串,很多功能都需要正則表達式的知識,所以就介紹一下最簡單的幾種用sscanf來分解字符串 的用法。
? ? ? ? ? ? ? ?1.
? ? ? ? ? ? ? ?char str[100],str1[100],str2[100];
? ? ? ? ? ? ? ?gets(str);
? ? ? ? ? ? ? ?sscanf(str,”%s%s”,str1,str2);
? ? ? ? ? ? ? ?將讀入的一整行字符串按空格,制表符或回車符分割成兩個字符串。
? ? ? ? ? ? ? ?2
? ? ? ? ? ? ? ?取指定長度的字符串。如在下例中,取最大長度為4字節(jié)的字符串。
? ? ? ?sscanf("123456 ", "%4s", str);
總結(jié)
以上是生活随笔為你收集整理的c函数scanf(),printf()等常用格式字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sscanf用法详解-hdu2072
- 下一篇: 生成随机测试数据的文件的程序