C/C++之文件打开方式差别

一、引言

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

二、原因

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

以二进制方式打开:

可以看到,行是以\r\n结尾的。

以文本方式打开:

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

时间: 2024-10-16 08:48:48

C/C++之文件打开方式差别的相关文章

转载:python文件打开方式详解——a、a+、r+、w+区别

第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,会将文件内容清零 (以w方式打开,不能读出.w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: [python] view plain copy print? <span style="background-color: rgb(255, 255, 255);">fd = open("1.txt"

android添加文件打开方式以及参数传递

上一篇文件分享,这一篇关于打开文件时,文件打开方式选择,以及选择我们自己的应用是拿到文件进行处理. 想要在文件打开方式中出现我们自己的应用,只需设置清单文件AndroidManifast.xml,在<activity>下添加一个<intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"></action> <data

【转】python文件打开方式详解——a、a+、r+、w+区别

原文地址:http://blog.csdn.net/ztf312/article/details/47259805 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出.w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: fd = open("1.txt",'w+') fd.write('123') fd = open("

利用文件打开方式with open(&#39;文件名&#39;,方式) as 变量名做一个简单的复制(排除大文件bug)

1 #!usr/bin/env python 2 #-*- coding=utf-8 -*- 3 4 with open('b.py','r') as obj1, open('c.py','w') as obj2: 5 for line in obj1.read(): 6 obj2.write(line) 将a.py的数据一行一行的进行复制 节省的了内存 另外 这种打开方式 免除了 之后需要的f.close() 对代码量上有细微的差距...(我自己想的...) 注意:第二个open不接with

python文件打开方式详解——a、a+、r+、w+区别

出处: http://blog.csdn.net/ztf312/ 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出.w+可读写) w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: [python] view plain copy print? fd = open("1.txt",'w+') fd.write('123') fd = open(&

文件打开方式

FileMode Enumeration 指定操作系统打开文件的方式.(命名空间:System.IO) 语法 [SerializableAttribute] [ComVisibleAttribute(true)] public enum FileMode 成员 成员名称 说明 CreateNew 指定操作系统创建新文件. 此操作需要FileIOPermissionAccess.Write. 如果文件已存在,则将引发IOException. Create 指定操作系统应创建新文件. 如果文件已存在

文件打开方式设置

在文件类型中重新设置打开方式(以XP为例) 打开 我的电脑--工具--文件夹选项--文件类型,找到“驱动器”或“文件夹”(具体选哪个根据你所遇问题,若属于双击打不开驱动器则选择“驱动器”,打不开文件夹则选择“文件夹”).点下方的“高级”,在“编辑文件类型”对话框里的“新建”,操作里填写“open”(这个可随意填写,如果有“open”且指向的是其他陌生的.exe文件则有可能指向的是木马,则选择“编辑”),用于执行操作的应用程序里填写explorer.exe,确定

Python文件处理之文件打开方式(一)

Python中打开一个文件是同过open函数来打开的,并返回一个文件对象,以下为open函数的参数: open(name[, mode[buf]]) name:文件路径 mode:打开方式 buf:缓冲大小 open根据你提供的name.mode.buf来打开一个文件并返回文件对象,如果只填写name,mode则默认为只读方式,buf则默认为-1,以下为open的一些mode: 例: 1 print type(open(‘blog.txt’)) 2 3 #打印结果:<type 'file'>

(转)如果“打开方式”里面没有想要的打开方式,怎样创建一种文件打开方式?

你的意思是不想用默认的软件,而是用另外一种么?右键--打开方式--选择程序(弹出一个对话框,有很多程序的列表)如果列表里面没有你想要用的程序,可以点击 浏览找到你希望使用的软件的路径,用该软件打开指定文件 ,注意,比如editplus.exe,就是浏览后还是附加不上程序,可以改个名字就好了