當前位置:首頁 » 編程語言 » c語言fprintf的用法

c語言fprintf的用法

發布時間: 2022-12-15 18:45:52

A. c語言Fopen函數的用法

fopen函數用來打開一個文件,其調用的一般形式為:
文件指針名=fopen(文件名,使用文件方式);
其中,
「文件指針名」必須是被說明為FILE 類型的指針變數;
「文件名」是被打開文件的文件名;
「使用文件方式」是指文件的類型和操作要求。
「文件名」是字元串常量或字元串數組。
例如:
FILE *fp;
fp=("file a","r");
其意義是在當前目錄下打開文件file a,只允許進行「讀」操作,並使fp指向該文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16","rb")
其意義是打開C驅動器磁碟的根目錄下的文件hzk16,這是一個二進制文件,只允許按二進制方式進行讀操作。兩個反斜線「\\ 」中的第一個表示轉義字元,第二個表示根目錄。
使用文件的方式共有12種,下面給出了它們的符號和意義。
文件使用方式
意義
「rt」
只讀打開一個文本文件,只允許讀數據
「wt」
只寫打開或建立一個文本文件,只允許寫數據
「at」
追加打開一個文本文件,並在文件末尾寫數據
「rb」
只讀打開一個二進制文件,只允許讀數據
「wb」
只寫打開或建立一個二進制文件,只允許寫數據
「ab」
追加打開一個二進制文件,並在文件末尾寫數據
「rt+」
讀寫打開一個文本文件,允許讀和寫
「wt+」
讀寫打開或建立一個文本文件,允許讀寫
「at+」
讀寫打開一個文本文件,允許讀,或在文件末追加數據
「rb+」
讀寫打開一個二進制文件,允許讀和寫
「wb+」
讀寫打開或建立一個二進制文件,允許讀和寫
「ab+」
讀寫打開一個二進制文件,允許讀,或在文件末追加數據
對於文件使用方式有以下幾點說明:
1) 文件使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文本文件,可省略不寫
b(banary): 二進制文件
+: 讀和寫
2) 凡用「r」打開一個文件時,該文件必須已經存在,且只能從該文件讀出。
3) 用「w」打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。
4) 若要向一個已存在的文件追加新的信息,只能用「a」方式打開文件。但此時該文件必須是存在的,否則將會出錯。
5) 在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,並作相應的處理。因此常用以下程序段打開文件:
6) if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息「error on open c:\ hzk16 file!」,下一行getch()的功能是從鍵盤輸入一個字元,但不在屏幕上顯示。在這里,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程序才繼續執行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程序。
7) 把一個文本文件讀入內存時,要將ASCII碼轉換成二進制碼,而把文件以文本方式寫入磁碟時,也要把二進制碼轉換成ASCII碼,因此文本文件的讀寫要花費較多的轉換時間。對二進制文件的讀寫不存在這種轉換。
8) 標准輸入文件(鍵盤),標准輸出文件(顯示器),標准出錯輸出(出錯信息)是由系統打開的,可直接使用。

B. fprintf和printf有什麼區別嗎

1、原形:fprintf的函數原型為int fprintf( FILE *stream, const char *format, [ argument ]...);而printf的函數原型為:int printf( const char *format [, argument]... )。

2、輸出的目標:printf,是把格式字元串輸出到標准輸出(一般是屏幕,可以重定向);fprintf, 是把格式字元串輸出到指定文件設備中,所以參數筆printf多一個文件指針FILE*。

3、緩沖:printf是有緩沖的輸出;fprintf沒有緩沖。

4、功能:fprintf()傳送輸出到一個流中的函數;sprintf()格式化輸出到數組的函數。

5、返回值:fprintf()成功則返回輸出的位元組數,錯誤則返回EOF;sprintf()實際寫入數組的字元個數。

(2)c語言fprintf的用法擴展閱讀:

1、fprintf()傳送輸出到一個流中的函數

原形:int fprintf(FILE *stream,const char *format[,argument,...])

功能:①向文件指針指向的文件輸出ASCⅡ代碼

②向顯示器輸出錯誤信息

使用形式:

①fprintf(文件指針,"輸出格式",輸出項系列);

②fprintf(stderr,"錯誤信息");

使用實例:fprintf(stream,"%d %c %f",i,c,f);

其中定義FILE *stream;

int i;char c;float f;

返回值:成功則返回輸出的位元組數,錯誤則返回EOF。

頭文件:stdio.h

2、sprintf()格式化輸出到數組的函數

原形∶int sprintf(buf,format,arg_list)

其中char *buf;

功能∶把arg_list參量的值按format的格式輸出到buf中。

例∶sprintf(buffer,"相對扇區號∶%s(其中∶柱面號為%d/磁頭號為%d/扇區號為%d)",string,cyls,head,sector);

其中char buffer[100];

char *string="";

int cyls,head,sector;

返回值∶實際寫入數組的字元個數。

頭文件∶stdio.h

C. c語言fprintf

因為fprintf和printf類似,輸出的內容取決於字元串和參數,但fprintf的操作對象是文件而不是標准輸出設備。

格式化輸出就是根據「格式化字元串」的內容決定「具體輸出」的內容,比如

printf("%s,hello!","XXX");

"%s, hello!"就是格式化字元串,有點像模板,只是告訴函數一個輪廓,具體的細節由後面的參數("XXX")決定。所以具體輸出是「XXX, hello!」,這個你應該知道吧?

D. C語言怎麼把字元串用fprintf寫入文本文件

把把字元串寫入文件,基本示例如下:

FILE *fp;

char s[]= "hello world!";

char c = ' ';

fp = fopen("file.txt","a");

fprintf(fp,"%s",s); //字元串使用%s

fprintf(fp,"%c",c); //字元使用%cfclose(fp);從文件讀取到字元串 char s1[30];fp=fopen("file.txt","r");fscanf(fp, "%[^ ] ", s1);printf("%s ",s1);fclose(fp); 本來挺簡單的一件事,可是讓我頭疼了好幾個小時。

在前面寫了 fp = fopen("file.txt","a");

fprintf(fp,"%s",s); //字元串使用%s

但是fclose(fp);這句被我寫在了return 0;之前,然後字元串死活寫不進文件裡面去。後來終於發現是因為使用了while(1)循環讀取埠數據,所以一直沒有執行fclose(fp);這句,才導致文件裡面一直是空的。所以fclose(fp);這句話不要忘記了哦~~ :)

E. 求救!!如何在c語言中用fprintf函數輸出txt文件

fprintf 簡介 c/c++語言函數: fprintf 功 能 傳送格式化輸出到一個文件中 用 法 #include <stdio.h> int fprintf( FILE *stream, const char *format, ... ); fprintf()函數根據指定的format(格式)(格式)發送信息(參數)到由stream(流)指定的文件. fprintf()只能和printf()一樣工作. fprintf()的返回值是輸出的字元數,發生錯誤時返回一個負值. 返回值 成功時返回轉換的位元組數,失敗時返回一個負數. 在LINUX/UNIX操系統中成功返回0,失敗返回-1。並置errno值. 程序例 /* Program to create backup of the AUTOEXEC.BAT file */ #include <stdio.h> int main(void) { FILE *in, *out; if ((in = fopen("//AUTOEXEC.BAT", "rt")) == NULL) { fprintf(stderr, "Cannot open input file./n"); return 1; } if ((out = fopen("//AUTOEXEC.BAK", "wt")) == NULL) { fprintf(stderr, "Cannot open output file./n"); return 1; } while (!feof(in)) fputc(fgetc(in), out); fclose(in); fclose(out); return 0; } 舉例用法: #include <stdio.h> #include <process.h> FILE *stream; void main( void ) { int i = 10; double fp = 1.5; char s[] = "this is a string"; char c = '/n'; stream = fopen( "fprintf.out", "w" ); fprintf( stream, "%s%c", s, c ); fprintf( stream, "%d/n", i ); fprintf( stream, "%f/n", fp ); fclose( stream ); system( "type fprintf.out" ); } 屏幕輸出: this is a string 10 1.500000 格式化規定符 %d 十進制有符號整數 %u 十進制無符號整數 %f 浮點數 %s 字元串 %c 單個字元 %p 指針的值 %e 指數形式的浮點數 %x, %X 無符號以十六進製表示的整數 %0 無符號以八進製表示的整數 %g 自動選擇合適的表示法

F. C語言 fwrite()和fprintf()的區別

fwrite是向流中寫入數據,而fprintf是向流中寫入格式數據。兩者的共同點為向流中寫入數據,至於區別可以看看兩者的申明:
size_tfwrite(
constvoid*buffer,
size_tsize,
size_tcount,
file*stream
);
intfprintf(
file*stream,
constchar*format[,
argument]...
);
前者fwrite寫入流stream中的數據是buffer指定的內容,內容的位元組大小分別由size和count兩個參數來指定,因此寫入流stream中的內容有可能是亂碼,但是有效的數據。
後者fprintf寫入流stream中的數據則由argument來指定,並且這些argument的內容分別由format指定的格式來顯示,因此寫入stream的內容通常來說是文本字元流,當然,也允許寫入格式亂碼。
兩者都可以將文本寫入流stream中。比如:
fwrite("helloworld!",1,12,fp);

fprintf(fp,"%s","helloworld!");
等價。

G. C語言文件 fprintf函數的問題

一、作用區別:fwrite是c語言函數,指向文件寫入一個數據塊。fprintf是c/c++中的一個格式化寫—庫函數;其作用是格式化輸出到一個流/文件中;二、函數原型區別:fwrite:size_t
fwrite(const
void*
buffer,
size_t
size,
size_t
count,
file*
stream);fprintf:int
fprintf
(file*
stream,
const
char*format,
[argument]);三、返回值區別:fwrite:返回實際寫入的數據項個數。fprintf:返回值是輸出的字元數,發生錯誤時返回一個負值。

H. c中fprintf的用法

%5d 的意思:5代表輸出的數是五位數,d代表輸出的格式為整型。
%6.3f的意思是:6代表輸出六位數,3代表小數點後面有三位數,(其中6包含小數點的位數),f代表按浮點數輸出 (float)
'\'是轉義字元,\n是換行,\\n是輸出'\n'

熱點內容
派什麼編程 發布:2024-05-08 21:25:43 瀏覽:340
手機作為存儲設備 發布:2024-05-08 21:23:34 瀏覽:492
蘋果x配置如何看 發布:2024-05-08 21:15:34 瀏覽:31
易語言加密文件夾 發布:2024-05-08 21:15:33 瀏覽:694
b站如何知道賬號密碼 發布:2024-05-08 20:33:55 瀏覽:691
知識圖譜演算法 發布:2024-05-08 20:33:19 瀏覽:908
手機登雲伺服器windows 發布:2024-05-08 20:32:57 瀏覽:113
上傳3d模型 發布:2024-05-08 20:11:41 瀏覽:604
國內訪問外國網站 發布:2024-05-08 20:09:40 瀏覽:859
wifi熱點無internet訪問 發布:2024-05-08 20:09:37 瀏覽:892