使用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,正数向前,负数向后