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