文件使用二进制模式打开情况下的换行的方法
来源:互联网 发布:社交软件如何盈利 编辑:程序博客网 时间:2024/04/29 03:15
今天用VS2010写个简单的用来记录软件的日志到文件的程序,使用\n
原因:对于文件,在windows平台下的换行是LRCR(“\r\n")(针对WINDOWS的记事本工具来说,若用智能些的文本编辑器,就会换行了),,
所以在使用二进制模式打开文件,写入的时候,换行请使用\r\n .
而在文本模式下打开文件写入时, 用\n即可以了,(使用ultraEdit查看file1和file2的二进制,发现file2多了一个\r字符(0x0D), 这就是文本模式的原因了。
对于不同的平台,默认的换行是不一样的。。。
测试代码如下:
#include <stdio.h>#include <string.h>#include <assert.h>#include <Windows.h>int main(){FILE *file1 = fopen("test1.txt","wb");FILE *file2 = fopen("test2.txt","w");assert(file1 && file2);char str[1024] = "this is a test!\nyou know";//再把\n换成\r\n试试int len = strlen(str);int writeLen1 = fwrite(str, 1, len, file1);int writeLen2 = fprintf(file2, str);assert(writeLen1 == len && writeLen2 == len);fclose(file1);fclose(file2);printf("现在请打开test.txt文件看看,里面有没有换行,换任意键继续\n");system("pause");file1 = NULL;file2 = NULL;//现在我们在从文件里读取len个字节输出到控制台//下面的测试可以直接用ultraEdit或者winHex看其16进制是否是这几个字符,特别是'\n'char *str1[1024] = {0};char *str2[1024] = {0};file1 = fopen("test1.txt","rb");file2 = fopen("test2.txt","r");assert(file1 && file2);int readLen1 = fread(str1, 1, len, file1);assert(readLen1 == len);//判断读出的字节数与写入的是否相等printf("file1:\n");printf("%s",str1);return 0;}
- 文件使用二进制模式打开情况下的换行的方法
- 文件使用二进制模式打开情况下的换行的方法
- C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别
- 文件打开的文本模式和二进制模式
- 文件打开的文本模式和二进制模式
- 文件打开的文本模式和二进制模式
- 文件打开的文本模式和二进制模式
- Linxu下打开chm文件的方法
- 常用js总结用editplus打开应该格式正常,我是指不自动换行的情况下,不会乱。
- 二进制打开文件和文本打开文件的区别
- 关于使用JAXB的时候生成的XML文件用记事本打开不换行的解决方法
- opencv打开多种情况下的图像
- 头文件无法打开的情况之一
- 打开文件的方法
- linux下查看日志(如果日志是大文件没办法打开的情况下)
- C语言文件打开和二进制打开方式的区别
- 文件的打开模式和文件对象的方法
- 尽量在不得已的情况下才使用设计模式
- 完整版仿google分页,已发
- filter,map,reduce
- 用条件变量和信号量解决生产者和消费者问题
- <学习笔记>使用#ifndef, #define, #endif
- Windows下查找纯文本文件中的字符串 - 命令findstr简介(转)
- 文件使用二进制模式打开情况下的换行的方法
- 为ListBox的SelectedItem添加动画(附源码)
- TCP/IP协议学习笔记
- 0/1背包问题动态规划详解
- 一位老电子工程师十年的职场感悟
- SAX解析xml 网友写的
- 平衡球游戏开发教程(四)--深入了解WP7游戏底层原理
- 个人备忘-- final修饰符
- 下载中心