c++ 讀取和寫入文件

使用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,正數向前,負數向後
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章