sprintf和sscanf的用法

2021-07-15 11:23:34 字數 1485 閱讀 4873

1、

sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf 比printf 有用得多。

sprintf 是個變參函式,定義如下:

int sprintf( char *buffer, const char *format [, argument] ... );

除了前兩個引數型別固定外,後面可以接任意多個引數。而它的精華,顯然就在第二個引數:格式化字串上。

格式化數字字串

sprintf 最常見的應用之一莫過於把整數列印到字串中,所以,spritnf 在大多數場合可以替代itoa。

如:把整數123 列印成乙個字串儲存在s 中。

sprintf(s, "%d", 123); //產生"123"

可以指定寬度,不足的左邊補空格:

sprintf(s, "%8d%8d", 123, 4567); //產生:" 123 4567"

當然也可以左對齊:

sprintf(s, "%-8d%8d", 123, 4567); //產生:"123 4567"

sprintf 的返回值

較少有人注意printf/sprintf 函式的返回值,但有時它卻是有用的,spritnf 返回了本次函式呼叫

最終列印到字元緩衝區中的字元數目。也就是說每當一次sprinf 呼叫結束以後,你無須再呼叫一次

strlen 便已經知道了結果字串的長度。如:

int len = sprintf(s, "%d", i);

對於正整數來說,len 便等於整數i 的10 進製位數。

eg.

[cpp]view plain

copy

print?

len=sprintf(page,

"%s='%s'/n"

,fb_data->name,fb_data->value);   2、

sscanf()函式的用法int sscanf( const char *buffer, const char *format [, argument ] ... )

其實sscanf函式和scanf函式很像,只不過是scanf是從控制台下使用者自己輸入的,而sscanf是從buffer中讀取資料,而不用使用者輸入了(相當於使用者輸入的字串是buffer).後面的argument是要儲存的位置。在匹配的過程中,只要遇到不匹配的情況,sscanf就結束執行。

sscanf函式返回值的含義是有多少個變數被賦值。

[cpp]view plain

copy

print?

#include 

#include 

using

namespace

std;  

const

intmaxn = 3000;  

intf[maxn];  

intmain()   

sscanf 和 sprintf的用法

一 sprintf sprint函式原型為int sprintf char str,const char format,作用是格式化字串,具體功能如下所示 1 將數字變數轉換為字串。2 得到整型變數的 16進製制和 8進製字串。3 連線多個字串。舉例如下 char str 256 int data ...

sscanf和sprintf的用法

標準庫函式定義 函式在任何平台上都被支援 且保證函式功能一致 基本一致 使得你的同乙個原始碼,在windows編譯執行的結果 和在linux上編譯執行的結果相同。sprintf與sscanf 實際工程中常用的一對函式 sprintf 格式化字串,首字母s表示string sscanf 解析字串 例 ...

sscanf和sprintf函式的用法

sscanf和sprintf是scanf和printf家族的一對成員,用於處理和分析字串非常強大的兩個函式。標頭檔案 stdio.h 原型 cpp view plain copy intsscanf const char buffer,const char format,intsprintf cha...