使用ifstream和ofstream和read和write函數,以二進制的方式,來完成文件的讀和寫。
/*
*日期:2019.10.12
*功能:以二進制讀取文件內容
*參數說明:
filePath:文件的路徑
outParam:讀取出來的內容
*返回值:打開文件失敗返回-1,成功返回0
*/
int ReadFile(char *filePath, char *outParam)
{
//char p[1024] = {0};
ifstream fp(filePath,ios::binary|ios::in);
if (fp.bad())
{
return -1;
}
fp.read((char*)outParam, 1024 * sizeof(char));
//cout<<p<<endl;
fp.close();
}
/*
*日期:2019.10.12
*功能:打開文件並寫入文件內容
*參數說明:
filePath:文件的路徑
inParam:寫入內容
len:寫入內容的長度
*返回值:打開文件失敗返回-1,成功返回0
*/
int WriteFile(char *filePath, char* inParam, long len)
{
ofstream fp(filePath,ios::binary |ios::out);
if(fp.bad())
{
return -1;
}
fp.write(inParam,len*sizeof(char));
fp.close();
}
int main()
{
char str1[50] = " 12345abcdef歡迎你\r\n hello world!\r\n 12345";
int ret = WriteFile("C:\\...\\a.txt",str1, 50);
if(ret != 0)
{
cout<<"打開文件失敗"<<endl;
return 0;
}
char str2[100] = {0};
ret = ReadFile("C:\\...\\Desktop\\a.txt",str2);
if(ret != 0)
{
cout<<"打開文件失敗"<<endl;
return 0;
}
cout<<str2<<endl;
}
其他的常用函數和選項
//文件打開方式選項:
// ios::in //可讀,文件不存在則創建(ifstream默認的打開方式)
// ios::out //可寫,文件不存在則創建,若文件已存在則清空原內容(ofstream默認的打開方式)
// ios::ate //文件打開時,指針在文件最後。
// ios::app //可寫,文件不存在則創建,若文件已存在則在原文件內容後寫入新的內容,指針位置總在最後
// ios::trunc //在讀寫前先將文件長度截斷爲0(默認)
// ios::nocreate //文件不存在時產生錯誤
// ios::noreplace //文件存在時產生錯誤
// ios::binary //二進制
//ios::beg 文件開頭
//ios::cur 文件當前
//ios::end 文件結尾
//tellg() 返回當前指針的位置,也反映輸入流的大小
//seekg(0,ios::end)指針在文件末,偏移量爲0,正數向前,負數向後