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...
請問有鬼麼,請問有鬼麼?
我認為是有的 為什麼呢?因為你想象這個宇宙 宇宙是怎麼來的 本來一切都應該是無的 為什麼回有地球 為什麼回有宇宙 宇宙後面又有什麼?這是誰創造了這一切的一切 而這一切的一切的創造者又是誰?一切的根源誰知道 鬼?只是你沒有見過 也許見過就是你死的時候鬼?為什麼我門叫鬼?以為他很神秘就和宇宙一樣詭異 不...
請問關於時間,請問關於時間
我們傳遞資訊目前來說最快就是通過光,光速不變 光速最快是相對論的乙個前提條件。用來界定過去與現在也是在這個前提下的一種說法,如果哪一天發現更快地傳遞資訊的物質時,用來界定過去與現在的工具將被替換。同意問題中的說法.光速只是目前人類所知的最快的速度而已.而且我也有疑惑,對於以光速前進的物體來說,時間是...