C C 的檔案讀寫操作

2021-04-25 10:41:56 字數 1969 閱讀 7386

檔案讀寫是經常用到的,在c/c++中關於檔案讀寫的函式也很毒,最近在使用檔案讀寫的時候就發現一些問題,總結一下:

1.

fgetc();

函式原型是:int fgetc( file *stream );

該函式每一次從檔案中讀取乙個字元,對於空格和回車都可以讀取!

source.txt 檔案內容為「thank you very much」

驗證程式如下:

#include

#include

#include

using namespace std;

int main()

if((outfile=fopen("result.txt","w"))==null)

char str[1024];

int i=0;

int m=0;

while(!feof(infile))

cout<<"i:="<

return 0;

} 程式執行以後輸出:i= 20;

本來是19個字元,輸出是20,原因是在讀檔案的時候,整個檔案作為string調進記憶體中,最後乙個「/0」標示string的結尾,所以fgetc()把「/0」也讀了進來!

如果在上述source.txt檔案的末尾敲一下回車鍵,再執行程式輸出i=21;其中包括回車鍵。所以21;

2.fputc();該函式的原型是int fputs( const char *string, file *stream );

其功能是把指定字元寫入到檔案中;

和函式fgetc()相對應的使用!

3.fscanf();該函式原型為:int

fscanf( file *stream, const char *format [, argument ]... );

是格式化的讀檔案函式,

fprintf();該函式的原型為:int

fprintf( file *stream, const char *format [, argument ]... );

是格式化的寫檔案函式;

測試程式**為:

while(!feof(infile))

4.

fgets();該函式原型為:char *fgets( char *string, int n, file *stream );

可以理解為逐行讀檔案的函式,遇到回車鍵則返回,並丟棄回車鍵符號;將讀取的整行內容作為乙個string儲存到char*string的記憶體中。

fputs();該函式原型為:

int fputs( const char *string, file *stream );

將string指向的內容以字串的形式一下寫進檔案中;

5.

getline()函式;有關該函式詳細說明如下:

#include

#include 

#include

<

string>

using

namespace

std;

//輸出空行

void

outputanemptyline()

//讀取方式: 逐詞讀取, 詞之間用空格區分

void

readdatafromfilewbw() }

//讀取方式: 逐行讀取, 將行讀入字元陣列, 行之間用回車換行區分 }

//讀取方式: 逐行讀取, 將行讀入字串, 行之間用回車換行區分

void

readdatafromfilelblintostring() }

int main()

c c 檔案讀寫操作

不要覺得我們說的檔案就是指txt,或者doc才是檔案,其實計算機裡面的年東西都是檔案。當我們用專門的軟體開啟他們的時候,可以看到裡面的東西,有記憶體也有二進位制 什麼的。開啟乙個檔案的格式 file p fopen home zouux 666 wb 第乙個引數是檔案的絕對路徑這裡的路徑為linux...

C C 檔案讀寫

c語言 include include int main void 寫入 fwrite msg,1,strlen msg 1,stream 重定位流 資料流 檔案 上的檔案內部位置指標 fseek stream,0,seek set 讀出 fread buf,1,strlen msg 1,strea...

C C 檔案讀寫

c語言 1.二進位制檔案寫 includevoid main file fp null 檔案指標 fp fopen text2.txt w 開啟檔案 while fp 開啟失敗 file fp null 檔案指標 fp fopen text3.txt w 開啟檔案 while fp 開啟失敗 插入後...