linux下读取windows文件遇到的问题
来源:互联网 发布:淘宝win10激活码危险 编辑:程序博客网 时间:2024/05/22 14:17
1 #include <stdio.h> 2 #include <string.h> 3 int main(int argc, char *argv[]) 4 { 5 char buf[1024]; 6 FILE *fp ; 7 FILE *dst_fp; 8 int i,j; 9 char *line; 10 char file_name[256]; 11 int space_line = 2; 12 int skip_line = 3; 13 14 for(i = 0; i < argc; i++) { 15 16 if(strcmp(argv[i],"-i") == 0){ 17 strcpy(file_name,argv[i+1]); 18 break; 19 } 20 } 21 22 if((fp = fopen(file_name,"rb"))==NULL) 23 printf("Open file error!\n"); 24 25 dst_fp = fopen("processed_by_c.txt","wb"); 26 27 i=0; 28 29 fseek(fp, 0, SEEK_SET); 30 31 while((line = fgets(buf,1024,fp)) != NULL){ 32 fputs(line,dst_fp); 33 i++; 34 if(i == skip_line) {
35 i=0; 36 j=0; 37 while(j < space_line) { 38 j++; 39 fputc('\r',dst_fp); 40 fputc('\n',dst_fp); 41 } 42 } 43 fflush(dst_fp); 44 } 45 fclose(fp); 46 fclose(dst_fp); 47 return 0; 48 49 } 10,1 T
在windows下生成了一个数据文件a.txt, 准备在linux下进行处理并且生成一个新的文件。具体处理是将文件每隔n行空m行。
源代码如上:
经过测试发现最终生成的文件为乱码,找了好久排除了程序的逻辑问题。自己用vim重新生成了一个txt文件测试发现没有问题。于是很自然想到了字符编码的问题。
通过运行hexdump a.txt发现开头是0xfeff,而且每个字符前面都是0x00,占两个字节,明显的unicode编码,而用vim在linux下生成的确没有。
于是通过命令iconv -f unicode -t ascii -o a_new.txt a.txt 先将原来的unicode文件转化为ascii编码的文件。
运行程序,OK
- linux下读取windows文件遇到的问题
- c++在linux下读取文件遇到的问题
- Windows环境下编译linux文件遇到的问题
- 关于Windows系统下,Python读取文件的问题。
- windows下 VMware按装Linux是遇到的问题
- windows迁移linux,在文件上遇到的问题
- linux与windows下读取项目文件的区别
- windows与linux读取文件夹下的文件
- windows下类似linux readdir()读取文件
- 读取网络文件遇到的问题。
- ifstream fileIn 读取文件遇到的问题
- python读取excel文件遇到的问题
- 关于文件读取遇到的问题
- /python课程设计/读取文件遇到的问题
- 在windows下使用xampp时遇到无法读取session的问题
- windows下Qt编译遇到的问题
- Windows下安装TexLive遇到的问题
- ffmpeg Windows下编译遇到的问题
- android文件存储
- Spring源码分析-AOP拦截器链的使用(六)
- SQL语法大全
- 修改panel的html
- vmware win7下从新安装的注册标表问题
- linux下读取windows文件遇到的问题
- ISAPI_Rewrite3_0087 full版破解
- Cocos2d-x学习:动作Action(延时类动作)[2.0.1]
- Mysql 通过Root账户进去修改 其他账户的密码
- OpenGL绘制半透明物体
- Data Developer (sutra)
- 导出报表的几种方式
- 常用正则表达式 匹配身份证号,手机号,固话,邮政编码
- 新时尚Windows8开发(14):如何选取联系人信息