請問sprintf fprintf和printf這函式有什麼區別

2022-02-05 07:19:39 字數 5061 閱讀 8025

1樓:教育仁昌

sprintf、fprintf和printf這三個函式區別為:輸出不同、引數不同、重定向不同。

一、輸出不同

1、sprintf函式:sprintf函式是把格式字串輸出到指定檔案裝置中。

2、fprintf函式:fprintf函式是把格式字串輸出到指定字串中。

3、printf函式:printf函式是把格式字串輸出到標準輸出中。

二、引數不同

1、sprintf函式:sprintf函式引數比printf多乙個char*。

2、fprintf函式:fprintf函式引數比printf多乙個檔案指標file*。

3、printf函式:printf函式引數為字串string。

三、重定向不同

1、sprintf函式:sprintf函式不可以重定向。

2、fprintf函式:fprintf函式不可以重定向。

3、printf函式:printf函式可以重定向。

2樓:匿名使用者

三個函式的目的一致,即輸出格式化的文字內容至螢幕。

一、輸出目標不同

1、printf,是把格式化字串輸出到標準輸出,即標準輸出檔案,對應終端的螢幕。

2、sprintf,是把格式化字串輸出到指定字串,也可作為緩衝區,而printf只能輸出到命令列上。

3、fprintf,是把格式化字串輸出到指定檔案中。

二、函式原型不同

1、printf函式原型 int printf ( const char * format, ... );

2、sprintf函式原型 int sprintf(char *buffer, const char *format, [argument]...);

3、fprintf函式原型int fprintf( file *stream, const char *format, [ argument ]...);

三、語言不同

1、printf()是c語言標準庫函式,在 stdio.h 中定義。

2、sprintf()是c/c++語言標準庫函式,在 stdio.h 中定義。

3、fprintf是c/c++中的乙個格式化庫函式,位於標頭檔案中。

擴充套件資料

1、printf函式

函式的呼叫格式為:printf("格式化字串",輸出表列)。

格式化字串包含三種物件,分別為:

(1)字串常量;

(2)格式控制字串;

(3)轉義字元。

2、sprintf函式

函式功能:格式化字串,將格式化的資料寫入字串中。

函式原型:int sprintf(char *buffer, const char *format, [argument]...)

引數:(1)buffer:是char型別的指標,指向寫入的字串指標;

(2)format:格式化字串,即在程式中想要的格式;

(3)argument:可選引數,可以為任意型別的資料;

函式返回值:buffer指向的字串的長度;

參考資料

3樓:匿名使用者

都是把格式好的字串輸出,只是輸出的目標不一樣:

1 printf,是把格式字串輸出到標準輸出(一般是螢幕,可以重定向)。

2 sprintf,是把格式字串輸出到指定字串中,所以引數比printf多乙個char*。那就是目標字串位址。

3 fprintf, 是把格式字串輸出到指定檔案裝置中,所以引數筆printf多乙個檔案指標file*。

4樓:惡靈的加護

sprintf 是輸出到串,一般是直接申請輸出到乙個字串中,這個可以用來將大量數字資料轉成字串。

fprintf 是輸出到檔案,當然,這個檔案也可能是虛擬的檔案。

printf 是直接輸出到標準顯示裝置,就是螢幕的終端中。

請問 fprintf sprintf printf 三者有什麼區別?謝謝

5樓:匿名使用者

fprintf輸出到檔案中,sprintf輸出到字串中.

如: fprintf(fp,"%s",name);

fp為檔案指標

sprintf(buff,"%s",name);

buff為字元陣列

printf是標準輸出流的輸出函式,用來向螢幕這樣的標準輸出裝置輸出,而fprintf則是向檔案輸出,將輸出的內容輸出到硬碟上的檔案或是相當於檔案的裝置上

6樓:

補充一下

fprintf如果這樣用:

fprintf(stdout,"%s",name);

那麼就和

printf("%s",name);

是完全一樣的(前提是你的標準輸出是指向顯示器,不過一般標準輸出都是顯示器)

sprintf的乙個功能:

int a = 12345;

char s[10] = "";

sprintf(s,"%d",a);

那麼此時有

s[0]=1; s[1]=2; s[2]=3; s[3]=4; s[4]=5;

也就是把乙個int型按逐個字元轉換成了char型

sprintf fprintf printf哪個速度快

7樓:匿名使用者

三個函式都有乙個讀取引數列表的步驟,速度相同,但sprintf讀完後操作記憶體資料變成字串

printf則把資料變成字串,在轉給顯示函式,fprintf則是在吧資料變成字串之後寫入到檔案,

所以,如果資料小的話 可能沒區別,資料大的話則是sprintf > printf > fprintf 速度。

8樓:匿名使用者

速度應該差不多,轉換部分是同樣的,

只不過將結果串送入三個不同的位置:陣列、檔案流、標準輸出而已

sprintf與printf的不同點是什麼?

9樓:匿名使用者

printf函式與sprintf不同之處有:

(1)函式的宣告不同

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

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

sprintf比printf多乙個引數buffer,這個引數的作用見(2)的描述。

(2)函式的功能不同

函式printf(...)根據指定的格式(format)將引數(argument)輸出到螢幕上;

函式sprintf(...)根據指定的格式(format)將引數(argument)輸出到由指標buffer指定的字元陣列(字元緩衝區)中;

(3)用法舉例

#include

void main()

10樓:郝在益

怎麼說了,這個函式的功能就是將某乙個型別的資料變成字串的形式,比如,int i=1000,這個是乙個int型,有時候我們需要將這個值變為字串,存到陣列裡,那麼就可以使用這個函式。如:

char a[20];

int i = 2100;

sprintf(a,"i=%d",i);

之後,陣列a裡面存的就是「i=2100」,是以字元形式存進去的

請問fprintf與sprintf的區別?

11樓:匿名使用者

fprintf輸出到檔案中,sprintf輸出到字串中.

如:fprintf(fp,"%s",name);

fp為檔案指標

sprintf(buff,"%s",name);

buff為字元陣列

sprintf()函式的用法

12樓:匿名使用者

在將各種型別的資料構造成字串時,sprintf 的強大功能很少會讓你失望。由於sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf 比printf 有用得多。

sprintf 是個變參函式,定義如下:int sprintf( char *buffer, const char *format [, argument] ... );除了前兩個引數型別固定外,後面可以接任意多個引數。

而它的精華,顯然就在第二個引數:格式化字串上。printf 和sprintf 都使用格式化字串來指定串的格式,在格式串內部使用一些以「%」開頭的格式說明符(format specifications)來佔據乙個位置,在後邊的變參列表中提供相應的變數,最終函式就會用相應位置的變數來替代那個說明符,產生乙個呼叫者想要的字串。

格式化數字字串sprintf 最常見的應用之一莫過於把整數列印到字串中,所以,spritnf 在大多數場合可以替代itoa。如://把整數123 列印成乙個字串儲存在s 中。

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

13樓:蠻薄尾宜年

函式功百能:把格式化的資料寫入度某個字串函式原知型:int

char

*buffer,

const

char

*format

[,argument]…);

返回值:道字元專串長度(strlen)

例子:char*

who=

"i";

char*

whom

="csdn";

sprintf(s,

"%屬s

love

%s.",

who,

whom);

//產生:"i

love

csdn.

"這字串寫到s中

sprintf(s,

"%10.3f",

3.1415626);

//產生:"

3.142"

數學請問0 21 22 ,數學 請問 0 2 1 2 2 2 3 2 4 2 n 2 怎麼求和呢?

sn n n 1 2n 1 6 用階差法求 n 1 3 n 3 3n 2 3n 1n 3 n 1 3 3 n 1 2 3 n 1 1 n 1 3 n 2 3 3 n 2 2 3 n 2 1 2 3 1 3 3 1 2 3 1 11 3 0 3 3 0 2 3 0 1 將上式累加,可得 n 1 3 3...

請問有鬼麼,請問有鬼麼?

我認為是有的 為什麼呢?因為你想象這個宇宙 宇宙是怎麼來的 本來一切都應該是無的 為什麼回有地球 為什麼回有宇宙 宇宙後面又有什麼?這是誰創造了這一切的一切 而這一切的一切的創造者又是誰?一切的根源誰知道 鬼?只是你沒有見過 也許見過就是你死的時候鬼?為什麼我門叫鬼?以為他很神秘就和宇宙一樣詭異 不...

請問關於時間,請問關於時間

我們傳遞資訊目前來說最快就是通過光,光速不變 光速最快是相對論的乙個前提條件。用來界定過去與現在也是在這個前提下的一種說法,如果哪一天發現更快地傳遞資訊的物質時,用來界定過去與現在的工具將被替換。同意問題中的說法.光速只是目前人類所知的最快的速度而已.而且我也有疑惑,對於以光速前進的物體來說,時間是...