15 檔案操作

2021-08-20 19:07:48 字數 4900 閱讀 4177

#define _crt_secure_no_warnings

#include//標準輸入輸出庫

#include//系統庫

#include#define buf_size 1024

typedef struct _stu

stu;

int fwritestr(char *pcfilename, char *pc);

int freadstr(char *pcfilename);

int freadany(char *pcfilename, int ilen);

int fwriteany(char *pcfilename, char *pc, int ilen);

int fwritestu(char *pcfilename, stu *ptstu);

int freadstu(char *pcfilename);

int freadnumstu(char *pcfilename, int inum);

int main()

; stu tstu[2] = , };

fwritestr("config.ini","擇善結構\n");

freadstr("config.ini");

fwriteany("config.ini", acbuf,10 );//檔名,應該包含完整路徑,否則就是當前目錄下的檔案

freadany("config.ini",10);

fwritestu("config.ini",&tstu[0]);//檔名,應該包含完整路徑,否則就是當前目錄下的檔案

//freadstu("config.ini");

freadnumstu("config.ini",1);

/* 隨機讀寫:游標的跳轉

rewind(fp); 將游標移到檔案首,重新讀檔案

fseek(fp,offset,loc) ;將游標移動到相對於loc offset大小的位置

loc : seek_set 檔案首 fseek(fp,20,seek_set);檔案首偏移20個位元組的位置

seek_cur 當前位置 fseek(fp,20,seek_cur);檔案指標當前位置偏移20個位元組的位置

seek_end 檔案尾 fseek(fp,20,seek_end);檔案尾偏移20個位元組的位置(反方向)

*/ system("pause");

return 0;

}/**************************

* function :fwritestr

* description :寫字串到指定檔案,會重寫檔案

* input para : char *pcfilename要寫入的內容的檔名,char c要寫入的字元

* output para : 無

* return value : 操作出錯返回-1,成功返回0

*************************==*/

int fwritestr(char *pcfilename,char *pc)

fputs(pc, fp);//寫入字串,字串專用

fclose(fp);//關閉檔案

return 0;

}/**************************

* description :新增乙個字串到指定檔案

* input para : char *pcfilename要寫入的內容的檔名,char c要寫入的字元

* output para : 無

* return value : 操作出錯返回-1,成功返回0

*************************==*/

fputs(pc, fp);

fclose(fp);//關閉檔案

return 0;

}/**************************

* function :freadstr

* description :一行一行讀出來,並列印

* input para : char *pcfilename要寫入的內容的檔名

* output para : 無

* return value : 操作出錯返回-1,成功返回0

*************************==*/

int freadstr(char *pcfilename)

; fp = fopen(pcfilename, "rb");

/* 使用之前應該檢測一下檔案是否開啟成功

*/ if (fp == null)

/*遍歷檔案*/

while (!feof(fp))//feof 如果到達檔案尾,就返回0,eof

fclose(fp);//關閉檔案

return 0;

}/**************************

* function :fwritestr

* description :寫任意內容到指定檔案,會重寫檔案

* input para : char *pcfilename要寫入的內容的檔名

* output para : 無

* return value : 操作出錯返回-1,成功返回0

*************************==*/

int fwriteany(char *pcfilename, char *pc,int ilen)

fwrite(pc, sizeof(char), ilen, fp);//資料塊的大小(一般是型別大小)size,塊的個數n,實際寫入size*n

fclose(fp);//關閉檔案

return 0;

} fwrite(pc, sizeof(char), ilen, fp);//資料塊的大小(一般是型別大小)size,塊的個數n,實際寫入size*n

fclose(fp);//關閉檔案

return 0;

}/**************************

* function :freadstr

* description :怎麼寫進去的怎麼讀出來,才能保證讀出來的內容跟寫入的一致,並列印

* input para : char *pcfilename要寫入的內容的檔名

* output para : 無

* return value : 操作出錯返回-1,成功返回0

*************************==*/

int freadany(char *pcfilename,int ilen)

; int i;

fp = fopen(pcfilename, "rb");

/* 使用之前應該檢測一下檔案是否開啟成功

*/ if (fp == null)

/*遍歷檔案*/

while (!feof(fp))//feof 如果到達檔案尾,就返回0,eof

memset(pcbuf, 0, buf_size);//將buf_size個0賦值到pcbuf中,清空陣列

} fclose(fp);//關閉檔案

return 0;

}int fwritestu(char *pcfilename, stu *ptstu)

fwrite(ptstu, sizeof(stu), 1, fp);//資料塊的大小(一般是型別大小)size,塊的個數n,實際寫入size*n

fclose(fp);//關閉檔案

return 0;

} fwrite(ptstu, sizeof(stu), 1, fp);//資料塊的大小(一般是型別大小)size,塊的個數n,實際寫入size*n

fclose(fp);//關閉檔案

return 0;

}/**************************

* function :freadstr

* description :怎麼寫進去的怎麼讀出來,才能保證讀出來的內容跟寫入的一致,並列印

* input para : char *pcfilename要寫入的內容的檔名

* output para : 無

* return value : 操作出錯返回-1,成功返回0

*************************==*/

int freadstu(char *pcfilename)

; fp = fopen(pcfilename, "rb");

/* 使用之前應該檢測一下檔案是否開啟成功

*/ if (fp == null)

/*遍歷檔案*/

while (!feof(fp))//feof 如果到達檔案尾,就返回0,eof

memset(&tstu, 0, sizeof(stu));//將buf_size個0賦值到pcbuf中,清空陣列

} fclose(fp);//關閉檔案

return 0;

}int freadnumstu(char *pcfilename,int inum)

; fp = fopen(pcfilename, "rb");

/* 使用之前應該檢測一下檔案是否開啟成功

*/ if (fp == null)

fseek(fp, sizeof(stu)*inum, seek_set);//跳過inum個學生

/*遍歷檔案*/

while (!feof(fp))//feof 如果到達檔案尾,就返回0,eof

memset(&tstu, 0, sizeof(stu));//將buf_size個0賦值到pcbuf中,清空陣列

} fclose(fp);//關閉檔案

return 0;

}

15,檔案操作

所有檔案都採用二進位制方式記錄數字 如果檔案裡的所有二進位制內容都對應字元則這種檔案叫文字檔案 除了文字檔案以外的所有檔案叫做二進位制檔案 文字檔案可以當作二進位制檔案使用 檔案操作的基本步驟 1.開啟檔案 fopen 2.操作檔案 fread fwrite 3.關閉檔案 fclose fopen函...

1 檔案測試 2 檔案操作

1 檔案測試函式 2 檔案操作 新建檔案 fopen filename,w 以 寫 的方式開啟乙個不存在的檔案,就會新建該檔案 檔案刪除 unlink 檔案複製 copy filename,aaa bb.txt 盡量使用 和相對路徑,因為linux只認 也沒有磁碟分割槽,而windows 和 都認 ...

2012 6 6檔案操作

path 目錄和檔案操作的命名控制項system.io string changeextension string path,string extension 修改檔案的字尾,修改 支援字串層面的,沒有真的給檔案改名 將兩個路徑合成乙個路徑,比用 好,可以方便解決不加斜線的問題,自動處理路徑分隔符的...