天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 47|回复: 0

stl C语言文件读写

[复制链接]
  • TA的每日心情
    开心
    2024-8-31 15:58
  • 签到天数: 89 天

    [LV.6]常住居民II

    488

    主题

    207

    回帖

    3366

    积分

    管理员

    积分
    3366
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    [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]

     

     

     

     

    stl C语言文件读写
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池| |网站地图

    GMT+8, 2024-9-8 09:22 , Processed in 0.070014 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表