**:
不要覺得我們說的檔案就是指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 開啟失敗 插入後...