TA的每日心情![](source/plugin/dsu_paulsign/img/emot/kx.gif) | 开心 2024-8-31 15:58 |
---|
签到天数: 89 天 [LV.6]常住居民II
管理员
- 积分
- 3366
|
[code]1、fopen_s、_wfopen_s
描述:
打开文件。
函数定义:
errno_t fopen_s(FILE** stream, char const* fileName, char const* mode);
errno_t _wfopen_s(FILE** stream, wchar_t const* fileName, wchar_t const* mode);
1
2
3
参数:
stream - 指向控制打开的文件流的对象的指针
filename - 要关联文件流到的文件名
mode - 确定文件访问模式
文件访问模式字符串 含义 解释 若文件已存在的行动 若文件不存在的行动
“r” 读 为读取打开文件 从起始读取 打开失败
“rb” 以二进制模式读 为读取打开文件 从起始读取 打开失败
“w” 写 为写入创建文件 销毁内容 创建新文件
“wb” 以二进制模式写 为写入创建文件 销毁内容 创建新文件
“a” 追加 追加到文件 写入到末尾 创建新文件
“r+” 扩展读 为读取/写入打开文件 从起始读取 错误
“r+” 扩展写 为读取/写入创建文件 销毁内容 创建新文件
“a+” 扩展追加 为读取/写入打开文件 写入到末尾 创建新文件
返回值:
打开失败返回0,否则返回1。
2、std::fread
描述:
读取数据。
函数定义:
std::size_t fread( void* buffer, std::size_t size, std::size_t count, std::FILE* stream );
1
参数:
buffer - 指向要读取的数组中首个对象的指针
size - 每个对象的字节大小
count - 要读取的对象数
stream - 读取来源的输入文件流
返回值:
返回成功读取的对象数,若出现错误或文件尾条件,则可能小于 count 。
3、std::write
描述:
写入数据。
函数定义:
std::size_t fwrite( const void* buffer, std::size_t size, std::size_t count, std::FILE* stream );
1
参数:
buffer - 指向数组中要被写入的首个对象的指针
size - 每个对象的大小
count - 要被写入的对象数
stream - 指向输出流的指针
返回值:
返回成功写入的对象数,若错误发生则可能小于 count 。
4、std::fclose
描述:
关闭文件。
函数定义:
int fclose( std::FILE* stream );
1
参数:
stream - 要关闭的文件流
返回值:
成功时为 0 ,否则为 EOF 。
5、示例
int main()
{
std::size_t unSumData = 1020;//每次读写文件元素的大小
std::size_t unOneData = 0; //每次读出或写入的元素大小
char* pData = new char[unSumData];
std::memset(pData, 0, unSumData);
std::FILE* pFileSourve = nullptr; //源文件指针
std::FILE* pFileTarget = nullptr; //目标文件指针
//打开文件
errno_t nErr = fopen_s(&pFileSourve, "E:\\temporary\\老杨.jpeg", "rb");
if (nErr != 0)
{
std::cout << "打开文件失败" << std::endl;
return -1;
}
nErr = fopen_s(&pFileTarget, "E:\\temporary\\老杨2.jpeg", "wb");
if (nErr != 0)
{
std::fclose(pFileSourve);
std::cout << "创建文件失败" << std::endl;
return -1;
}
//读取文件和写入文件
while ((unOneData = std::fread(pData,1, unSumData,pFileSourve)) > 0)//读取数据
{
std::fwrite(pData, 1, unOneData, pFileTarget);//写入数据
std::memset(pData,0, unSumData);
}
//关闭文件
std::fclose(pFileSourve);
std::fclose(pFileTarget);
delete[] pData;
std::cout << "拷贝成功" << std::endl;
}
————————————————
[/code] |
|