#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 修改檔案的字尾,修改 支援字串層面的,沒有真的給檔案改名 將兩個路徑合成乙個路徑,比用 好,可以方便解決不加斜線的問題,自動處理路徑分隔符的...