c c 檔案讀寫操作

2021-09-06 16:42:49 字數 1749 閱讀 3210

**:

不要覺得我們說的檔案就是指txt,或者doc才是檔案,其實計算機裡面的年東西都是檔案。當我們用專門的軟體開啟他們的時候,可以看到裡面的東西,有記憶體也有二進位制**什麼的。

開啟乙個檔案的格式

file *p = fopen("/home/zouux/666","wb");//第乙個引數是檔案的絕對路徑這裡的路徑為linux下的,如果沒有這個666檔案,會自動建立乙個這個檔案,第二個引數為模式,這裡為寫模式

if(p == null)//固定格式

注意:模式「wb」有乙個問題是開啟這個檔案時會先清空這個檔案,如果你想接著以前存在的內容繼續寫,應該用「ab」模式。

首先需要說,將乙個數字或者字串,更或者乙個結構體寫進檔案,可以用到兩個函式,乙個是fwrite,還有乙個是fprintf。

寫乙個數字:

int a = 1;

fwrite(&a,1,sizeof(a),p);/或者fprintf(p,"%d",a);

寫乙個字串:

char str = "hello,zouxu";

fwrite(str,1,11,p);//或者fprintf(p,"%s",str);

重點來了:關於fwrite和fprintf 

fwrite寫進檔案的是二進位制資料,專門給計算機讀的,用文字開啟這個檔案是一段亂碼。而fprintf寫進去的是人們認得到的字元,本質上兩種寫入方式都對。只不過乙個針對計算機。

fwrite第乙個引數為寫進去的東西的位址,第二個固定為1,第三為寫的東西的字元長度,第四個為檔案指標。

fprintf第乙個引數為檔案指標,第二個為寫進去的格式(資料型別),第三個為要寫進去的名字。

fclose(p);//p為檔案指標
步驟:先開啟檔案———在讀取資料———關閉檔案

file *p1 = fopen("/home/zouux/666","rb");//注意:這裡模式必須為rb

if(p1 == null)

char buff[100];//定義乙個緩衝區,用於儲存讀取出來的資料

fread(buff,1,100,p1);//第一引數為儲存的位址,第二個固定為1,第三個為讀多少資料,最後乙個為檔案指標

cout << buff;

fclose(p1);

注意:這裡的緩衝區為乙個陣列,又是也可以為乙個變數。比如:

file *p1 = fopen("/home/zouux/666","rb");

if(p1 == null)

while(!feof(p1))

int i;

double b=0.1;

for(i=0;i<=100;i++)

fclose(p);

讀資料時每次讀8位元組:

file *p1 = fopen("/home/zouux/666","rb");

if(p1 == null)

while(!feof(p1))//這個函式用於檢測是否到結尾

double shuzu[15];

int k=0;

while(!feof(p1))

for(int j=0;j<=9;j++)

cout << shuzu[j] << " ";

fclose(p1);

C C 的檔案讀寫操作

檔案讀寫是經常用到的,在c c 中關於檔案讀寫的函式也很毒,最近在使用檔案讀寫的時候就發現一些問題,總結一下 1.fgetc 函式原型是 int fgetc file stream 該函式每一次從檔案中讀取乙個字元,對於空格和回車都可以讀取!source.txt 檔案內容為 thank you ve...

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 開啟失敗 插入後...