這篇文章給大家分享的是有關C語言中printf,sprintf和fprintf的區別有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
成都創新互聯是創新、創意、研發型一體的綜合型網站建設公司,自成立以來公司不斷探索創新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的十年時間我們累計服務了上千家以及全國政企客戶,如被動防護網等企業單位,完善的項目管理流程,嚴格把控項目進度與質量監控加上過硬的技術實力獲得客戶的一致贊賞。printf,sprintf和fprintf都是C語言的輸出語句,都是把格式好的字符串輸出。那么這三者有什么區別,下面本篇文章就來認識一下printf,sprintf和fprintf,介紹它們之間的區別,希望對大家有所幫助。
printf
printf函數用于在標準輸出設備(stdout控制臺)上輸出文本(字符串/字符流)或值。
基本語法
int printf(const char * format,...);
說明:
format提供了文本字符串的格式,該格式將在輸出設備上使用%s,%d,%f等格式說明符進行輸出。
...提供需要輸出的參數列表。
返回類型int返回屏幕上輸出的字符總數。
示例:
#include<stdio.h> int main() { printf("hello geeksquiz"); printf("\n"); int a=2; printf("%d",a); return 0; }
輸出:
sprintf
sprintf用于將格式化文本(字符串/字符流)發送(復制)到字符串緩沖區上。
基本語法
int sprintf(char * str,const char * format,...);
說明:
● char * str : 將在其中發送(復制)格式化文本的字符數組。
● format在格式說明符的幫助下提供格式化文本。
● ...提供需要輸出的參數列表。
● 返回類型int將復制(發送)字符的總數返回到char * str中。
示例:
#include <stdio.h> int main() { char str[100]; int n; n=sprintf((char*)str,"我的名字是%s, I am %d years old.","Mike",23); printf("Text is: %s\n",str); printf("Total number of copied characters are: %d\n",n); return 0; }
說明:sprintf將字符串存儲在指定的char緩沖區上,再通過printf在stdout控制臺上輸出。
輸出:
fprintf
fprintf用于在文件中輸出字符串內容,但不在stdout控制臺上輸出。
基本語法:
int fprintf(FILE * fptr,const char * str,...);
說明:
fptr :這是指向 FILE 對象的指針,該 FILE 對象標識了流。
str:這是 C 字符串,包含了要被寫入到流 stream 中的文本。
示例:
#include<stdio.h> int main() { int i, n=2; char str[50]; //open file sample.txt in write mode FILE *fptr = fopen("sample.txt", "w"); if (fptr == NULL) { printf("無法打開文件"); return 0; } for (i=0; i<n; i++) { puts("輸入名稱"); gets(str); fprintf(fptr,"%d.%s\n", i, str); } fclose(fptr); return 0; }
輸出:
sample.txt中:
總結:
printf,sprintf和fprintf的區別是:它們的輸出目標不一樣。printf在stdout控制臺上輸出數據字符流;sprintf將數據字符流發送指定的char緩沖區上;fprintf用于在文件中輸出字符串內容。
感謝各位的閱讀!關于C語言中printf,sprintf和fprintf的區別有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網站標題:C語言中printf,sprintf和fprintf的區別有哪些-創新互聯
網站路徑:http://vcdvsql.cn/article26/eghcg.html
成都網站建設公司_創新互聯,為您提供動態網站、定制開發、云服務器、企業網站制作、面包屑導航、商城網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯