zoukankan      html  css  js  c++  java
  • C/C++之文件打开方式差别

    一、引言

    在上一篇中,需要获取文件的大小,但是获取的文件大小与从文件中读取的数据大小总是对不上(10行数据,文件大小是129,但是读取数据是119),因此,实现的服务器总是出现这个错误:net::ERR_CONTENT_LENGTH_MISMATCH

    二、原因

    造成这个错误的原因是,获取文件大小时,是使用seekg函数,而它是安字节来跳转读取位置的,但是读取文件时,我却使用了以文本打开的方式来读取文件。而以文本的方式读取文件时每个平台是会对行结束符做处理的。比如说,windows下会自动的把 结尾的行读取为 结尾。由于这样的转换,导致了上面的情况(10行数据,文件大小是129,但是读取数据是119)。

    以二进制方式打开:

    可以看到,行是以 结尾的。

    以文本方式打开:

    可以看到,行是以 为结尾的,也就是说,当我们以文本方式打开是,操作系统为我们做了自动转换。

  • 相关阅读:
    浏览器切换窗口事件
    icheck的使用
    datetimepicker —— 日期选择控件
    apktool
    生成证书
    Jadx
    js call、apply和bind
    1号台风来了
    Linux内核编译和测试
    华中科技大学电子地图
  • 原文地址:https://www.cnblogs.com/lit10050528/p/4285181.html
Copyright © 2011-2022 走看看