其实这些在fopen的说明文档中都有,自己没有细看而已。

  一般windows文本文件中, 一行以\r\n结束. 然而用fopen使用文本模式打开文件,再用fgets,fread读取文件内容时,他们会自动把\r\n转换为\n存在读出的buffer中。这时候如果直接使用当前文件指针位置加减读出的buffer长度来重定位文件读写位置,则会得不到想要的效果。如果使用二进制模式打开文件,则没有这个问题。两种模式下,完成fgets/fread后,文件指针的位置都是一样的,即指向\n后面的一个字符。

  使用"r+"模式进行文件的读写操作时,在读操作和写操作之间要插入fseek/fsetpos/rewind等文件重定位操作,否则后一个写操作无效。fopen的文档中说插入fflush也可以,但fflush之后文件指针会指向文件末尾(最后一个字符位置+1),再进行写操作就不合适了。

C语言使用fopen的两点注意事项相关推荐

  1. C语言的fopen()函数

    C语言的fopen()函数 fopen()的声明在头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: ​ FILE * fo ...

  2. C语言-结构体-计算两点距离(Problem 3591)

    C语言-结构体-计算两点距离 题目描述 大家高中肯定都计算过空间几何中点与点之间的距离,现在要求编写程序计算出两个点之间的距离.给出代码 如下,提交时只需提交你编写的代码 #include <s ...

  3. C语言sizeof的用法及注意事项

    C语言sizeof的用法及注意事项 求普通变量的大小 #include <stdio.h> int main() {int a = 5;printf ("%d\n", ...

  4. C语言的fopen函数

    C语言的fopen函数. 函数原型:FILE* fopen(const char* path, const char* mode) 功能:用于打开文件 参数:const char* path:字符串类 ...

  5. c语言用fopen打开txt,C语言fopen不能打开.txt文件

    C语言fopen不能打开.txt文件0 #include#include#includevoidencrypt(char*f1,char*pwd,char*f2){inti=0;FILE*fp1,*f ...

  6. c语言程序 fopen用法,fopen(c语言fopen函数的用法示例)

    请问如何读取 M51文件的bank fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式): 其中,"文件指针名"必须是被说明为file ...

  7. go语言json解析的坑 注意事项

    注意事项: 1. 结构体中的字段名首字母需大写,这样解析json时才能赋值:字段名小写的话,解析不会报错,但是字段都是空值 2. json字符串可以解析成结构体数组,或者结构体指针的数组,具体操作可见 ...

  8. C语言--使用fopen、fgets、fprintf(标准IO)实现注册、登录、功能--(完整代码-分文件)

    目录 功能 使用到的函数: 代码如下 main.c login.c login.h 功能 将注册的用户名密码,保存到本地文件中(User.txt)(创建在当前执行目录下了) 对文件的新建,打开,读写, ...

  9. C语言函数fopen,fclose的用法

    转自http://blog.sina.com.cn/s/blog_60059a210101277j.html 函数简介 函数功能: 打开一个文件 函数原型:FILE * fopen(const cha ...

最新文章

  1. macos降级_macOS Big Sur如何降级
  2. 收藏——CodeProject - 使用特性(attributes)和激活机制来实现工厂模式
  3. CentOS 7.0服务器安装配置LAMP服务器
  4. java 多态性 接口_Java中的多态性和接口
  5. Python基础案例(一)
  6. Linux全能终端,【MobaXterm】Windows全能终端神器—MobaXterm
  7. 信息学奥赛C++语言:装饰水果
  8. 获取到某一方法的调用者的类名、方法名、命名空间
  9. linux查看进程加载了哪些dll,linux下动态链接库的加载及解析过程
  10. 【MySQL】外键踩坑集
  11. H3CNE实验:Comware基本命令操作
  12. PR:设置关键帧、调出效果搜索栏找到裁剪效果
  13. 互金舆情精选-2019/1/31
  14. 【微信小程序更改appid失败】微信小程序修改appid一直失败报错tourist appid解决办法
  15. Java实现对png图片文件电子签名操作
  16. IPTV直播系统用P2P直播加速能节省带宽吗?
  17. HashMap的七种遍历方式
  18. JavaScript实战练习——图片裁剪
  19. C#体贴之处点滴 - extention method, lambda expression, anonymous method
  20. 游戏设计:何为游戏框架

热门文章

  1. CentOS 6.4 安装RBTools 报错 ImportError: Entry point ('console_scripts', 'easy_install') not found...
  2. NYOJ 643 发短信
  3. for...in和for...of以及for( :)的区别
  4. centos 6.5 启动时卡在进度条位置无法进入系统解决办法。
  5. Nuget包制作最佳解决方案
  6. linux上安装samba
  7. DropDownList 不能有多个项被选定
  8. Windows10上安装Git 2.10.2详细图解
  9. python调用C函数库
  10. libsvm的安装和使用(1)