亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

淺析C語言中printf(),sprintf(),scanf(),sscanf()的用法和區別

2020-01-26 15:59:52
字體:
來源:轉載
供稿:網友

printf
語法:
#include <stdio.h>
int printf( const char *format, ... );

printf()函數根據format(格式)給出的格式打印輸出到STDOUT(標準輸出)和其它參數中。返回值是輸出的字符數量。
sprintf
語法:
#include <stdio.h>
int sprintf( char *buffer, const char *format, ... );
sprintf()函數和printf()類似,格式控制完全一樣,只要是printf使用的格式化字符串,在sprintf都可以使用,只是把輸出發送到buffer(緩沖區)中。返回值是寫入的字符數量。

功能一:格式化數字字符串
sprintf(s, "%-8X", 12345); //s變成:“12345   ”
大寫的“X”代表,16進制大寫形式,寬度占8 個位置,“-”代表左對齊 。

功能二:控制浮點數打印格式
浮點數使用格式符”%f”控制,默認保留小數點后6 位數字 %m.nf”格式,其中m 表示打印的寬度,n 表示小數點后的位數
sprintf(s, "%10.3f", 3.1415626); //s變成:"      3.142"

功能三:連接兩個字符串
直接連接:
char dest[256];
char src1[] = {'a','b','c','d','e'};
char src2[] ={'1','2','3','4'};s
printf(dest,"%.5s%.4s",src1,src2); //output:“abcde1234”

截取字符串的某一些字符進行連接,
char dest[256];
char src1[] = {'a','b','c','d','e'};
char src2[] ={'1','2','3','4'};
sprintf(dest,"%.*s%.*s",2,src1,3,src2); //output:“ab123”

功能四:字符/Ascii 碼對照
我們知道,使用”%d”或者”%x”打印一個字符,便能得出它的10 進制或16 進制的ASCII 碼;反過來,使用”%c”打印一個整數,便可以看到它所對應的ASCII 字符。以下程序段把所有可見字符的ASCII 碼對照表打印到屏幕上(這里采用printf,注意”#”與”%X”合用時自動為16 進制數增加”0X”前綴):
for(int i = 32; i < 127; i++) {
    printf("[ %c ]: %3d 0x%#04X/n", i, i, i);
}

功能五:打印地址信息
有時調試程序時,我們可能想查看某些變量或者成員的地址,由于地址或者指針也不過是個32 位的數,你完全可以使用打印無符號整數的”%u”把他們打印出來:
sprintf(s, "%u", &i);
不過通常人們還是喜歡使用16 進制而不是10 進制來顯示一個地址:
sprintf(s, "%08X", &i);
然而,這些都是間接的方法,對于地址打印,sprintf 提供了專門的”%p”:
sprintf(s, "%p", &i);
我覺得它實際上就相當于:
sprintf(s, "%0*x", 2 * sizeof(void *), &i);

功能六:利用返回值
printf與sprintf的返回值是寫入的字符數量。
也就是說每當一次sprinf 調用結束以后,你無須再調用一次strlen 便已經知道了結果字符串的長度。如:
int len = sprintf(s, "%d", i);
scanf
語法:
  #include <stdio.h>
  int scanf( const char *format, ... );

scanf()函數根據由format(格式)指定的格式從stdin(標準輸入)讀取,并保存數據到其它參數.
sscanf
語法:
  #include <stdio.h>
  int sscanf( const char *buffer, const char *format, ... );

函數sscanf()和scanf()類似, 只是輸入從buffer(緩沖區)中讀取.
sscanf與scanf類似,都是用于輸入的,只是后者以屏幕(stdin)為輸入源,前者以固定字符串為輸入源
用法:
%[ ]表示要讀入一個字符集合, 如果[ 后面第一個字符是”^”,則表示反意思。[ ]內的字符串可以是1或更多字符組成??兆址?[])是違反規定的,可導致不可預知的結果。%[^]也是違反規定的。

%[a-z] 讀取在 a-z 之間的字符串,如果不在此之前則停止,如
char s[]="hello, my friend” ; // 注意: ,逗號在不 a-z之間
sscanf( s, “%[a-z]”, string ) ; // string=hello

%[^a-z] 讀取不在 a-z 之間的字符串,如果碰到a-z之間的字符則停止,如
char s[]="HELLOkitty” ; // 注意: ,逗號在不 a-z之間
sscanf( s, “%[^a-z]”, string ) ; // string=HELLO

%*[^=] 前面帶 * 號表示不保存變量。跳過符合條件的字符串。
char s[]="notepad=1.0.0.1001" ;
char szfilename [32] = "" ;
int i = sscanf( s, "%*[^=]", szfilename ) ;// szfilename=NULL,因為沒保存
intj = sscanf( s, "%*[^=]=%s", szfilename ) ;// szfilename=1.0.0.1001

%40c 讀取40個字符
%[^=] 讀取字符串直到碰到'='號,'^'后面可以帶更多字符,如:
char s[]="notepad=1.0.0.1001" ;
char szfilename [32] = "" ;
int i = sscanf( s, "%[^=]", szfilename ) ;           // szfilename=notepad
如果參數格式是:%[^=:] ,那么也可以從 notepad:1.0.0.1001讀取notepad

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品96久久久久久又黄又硬| 国产成人精品999| 欧美亚洲激情在线| 亚洲精品有码在线| 亚洲精品国产精品国自产在线| 日本sm极度另类视频| 久久精品成人欧美大片| 日韩av一区二区在线| 国产精品中文字幕久久久| 日本成人激情视频| 秋霞成人午夜鲁丝一区二区三区| 国产欧美韩国高清| 精品久久久在线观看| 欧美老女人xx| 久久精品福利视频| 自拍偷拍亚洲区| 亚洲精选中文字幕| 亚洲国产精品资源| 国产主播精品在线| 日韩电影大全免费观看2023年上| 亚洲欧美日韩在线一区| 综合av色偷偷网| 国产va免费精品高清在线观看| 久久中文字幕在线视频| 午夜精品久久久99热福利| 久久视频免费观看| 午夜精品一区二区三区视频免费看| 亚洲国产免费av| 国外成人免费在线播放| 日韩精品视频在线| 国产日韩在线看| 久久中文精品视频| 日韩精品视频免费在线观看| 国产日产亚洲精品| 成人免费视频网| 欧美—级高清免费播放| 最新中文字幕亚洲| 日韩av免费在线观看| 国产精品成人品| 亚洲国产91精品在线观看| 亚洲自拍小视频免费观看| 日韩理论片久久| 亚洲欧洲激情在线| 97涩涩爰在线观看亚洲| 在线激情影院一区| 国产一区二区三区四区福利| www日韩中文字幕在线看| 亚洲偷熟乱区亚洲香蕉av| 久热精品在线视频| 欧美视频不卡中文| 中文字幕精品久久久久| 久久视频中文字幕| 日本久久精品视频| 久久精品91久久久久久再现| 国产精品久久久久久久久久小说| 国产成人精品久久二区二区91| 成人在线观看视频网站| 日韩电影中文字幕一区| 欧美国产日韩二区| 欧美成人性色生活仑片| 国产精品麻豆va在线播放| 欧美一级电影久久| 亚洲欧洲视频在线| 青青久久aⅴ北条麻妃| 92看片淫黄大片欧美看国产片| 亚洲精品电影在线观看| 亚洲色图在线观看| 日韩视频中文字幕| 黑人欧美xxxx| 欧美情侣性视频| 日本精品一区二区三区在线| 欧美成人在线免费视频| 久久久久久久久久久免费精品| 国产日韩av在线播放| 国产精品高潮呻吟久久av无限| 亚洲精品国产综合久久| 91久久久久久| 一本色道久久综合狠狠躁篇怎么玩| 久久青草福利网站| 久久久人成影片一区二区三区观看| 国产精品高潮呻吟久久av野狼| www.久久撸.com| 亚洲精品不卡在线| 日本亚洲欧美成人| 亚洲图片欧洲图片av| 深夜福利91大全| 久久精品亚洲精品| 精品丝袜一区二区三区| 欧美亚洲第一区| 国产精品成av人在线视午夜片| 国产成人涩涩涩视频在线观看| 国产精品成人av性教育| 26uuu久久噜噜噜噜| 国产精品69av| 亚洲人成电影网站色| 国产视频久久久| 欧美丰满老妇厨房牲生活| 九九九热精品免费视频观看网站| 亚洲欧美另类中文字幕| 亚洲激情电影中文字幕| 国产精品高潮呻吟久久av野狼| 国产亚洲精品一区二555| 欧美精品久久久久久久久久| 国产午夜精品麻豆| 日韩精品在线免费观看视频| 日韩视频免费大全中文字幕| 亚洲欧美视频在线| 在线播放日韩精品| 欧美亚州一区二区三区| 国产一区二区日韩精品欧美精品| 色悠悠国产精品| 欧美色播在线播放| 亚洲女人初尝黑人巨大| 欧美野外wwwxxx| 国产精品亚发布| 最近2019免费中文字幕视频三| 亚洲一级黄色av| 在线精品国产成人综合| 欧美中文字幕精品| 成人午夜在线观看| 日韩一区av在线| 中文字幕欧美精品日韩中文字幕| 久久精品99久久香蕉国产色戒| 欧美日韩在线视频观看| 久久精品精品电影网| www高清在线视频日韩欧美| 精品爽片免费看久久| 影音先锋欧美精品| 色偷偷av亚洲男人的天堂| 亚洲欧美第一页| 一色桃子一区二区| 日韩专区中文字幕| 亚洲一区美女视频在线观看免费| 久久精品国产久精国产一老狼| 91精品美女在线| 黑人欧美xxxx| 欧美中文字幕在线| 久久久久成人精品| 欧美视频裸体精品| 黄色一区二区在线| 日韩欧美国产免费播放| 欧美性色19p| 成人高h视频在线| 日韩黄在线观看| 国产97在线播放| 欧美性色xo影院| 久久久亚洲影院| 在线观看久久av| 欧美日韩加勒比精品一区| 中文字幕一区日韩电影| 国产热re99久久6国产精品| 欧美电影电视剧在线观看| 欧美亚洲在线观看| 国内精品久久久久影院 日本资源| 欧美区二区三区| 日韩免费在线免费观看| 亚洲精品乱码久久久久久金桔影视| 亚洲免费小视频| 亚洲国产精品99| 亚洲电影免费观看高清完整版在线| 亚洲一区二区中文字幕| 国内精品久久久久伊人av| 亚洲一区二区三区在线免费观看| 一区二区三区视频免费|