zoukankan      html  css  js  c++  java
  • C++ fstream文件操作问题记录

    今天测试阿里云OSS文件上传接口,用fstream获取文件指针,代码如下

    std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(__FILE__, std::ios::in);

    该代码读取当前文件,拿到文件指针content,测试没有问题

    但是后面讲__FILE__改为某个dwg文件后测试,总是只能上传一部分。

    分析过程,肯定是文件读取不完整,提前读到了文件结尾导致的,改为如下方式后读取上传成功

    std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(localFiePath, std::ios::in | std::ios::binary);

    即添加 std::ios::binary,表示按二进制文件读取。

    所以,就像C的fopen函数一样,fstream如果不指定打开方式,默认会以文本方式打开文件,此时对于二进制文件就会出现提前读取结束的问题。

  • 相关阅读:
    PCRE
    [转]如何解决严重的拖延症
    linux系统编程:setjmp和longjmp函数用法
    AWK中几个变量
    关于fork函数
    go mod
    golang+read_file+call_shell+goroutine
    vim for galang
    Linux install go
    为Git branch 打Tag
  • 原文地址:https://www.cnblogs.com/jixiaohua/p/12249180.html
Copyright © 2011-2022 走看看