用二进制读取一个很大的txt文件,出现乱码,怎么解决?谢谢!急用!

unitsphere 2012-03-13 11:24:38
有一个很的大的文件要处理,其实文件连格式都没有。我就解压并且将文件扩展名换成txt用二进制读入且写入。可是一直是乱码。如何解决?很郁闷
...全文
524 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaeo74 2012-03-13
  • 打赏
  • 举报
回复
如果确定有字 但还看不到的话 可以考虑是不是被压缩过了
baichi4141 2012-03-13
  • 打赏
  • 举报
回复
除非文件内容就是ASCII码构成的字符串
否则乱码没商量

楼主你可以用txt打开exe文件,打开chm文件,打开rar文件,打开各种各样的文件
哪个不是乱码?

文件内的数据是有结构的,无视结构全部直接按ASCII码文本打开,不出错才有鬼
lhy 2012-03-13
  • 打赏
  • 举报
回复
如果不是英文出乱码很正常。
lily0628 2012-03-13
  • 打赏
  • 举报
回复
你是一个字符一个字符读的么?
试一试一次读一整块内容

File* fd;
char* buffer;
fd=fopen("demo","rb"); //用二进制模式读
int len = fread(buffer , 1, 10000,fd);//读的长度自己定
printf("%s\n", buffer);
unitsphere 2012-03-13
  • 打赏
  • 举报
回复

你也需要?[Quote=引用 9 楼 lanfeng_10 的回复:]
mark下···
[/Quote]
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
不用这么复杂吧?我只是想看到数字或字母而已
[Quote=引用 7 楼 hzy694358 的回复:]
不知道数据结构那就只能自己分析了,
用UE工具,直接二进制分析得到数据结构
不过这个比较繁琐
[/Quote]
hzy694358 2012-03-13
  • 打赏
  • 举报
回复
不知道数据结构那就只能自己分析了,
用UE工具,直接二进制分析得到数据结构
不过这个比较繁琐
unitsphere 2012-03-13
  • 打赏
  • 举报
回复

数据结构?我也不知道。txt总共1G多, 我也没看过的。应该有文字有数据。我也不知道是英语还是德语[Quote=引用 5 楼 hzy694358 的回复:]
乱码很正常么,主要是你要知道里面的数据结构
如果是string的话才可以正常显示
[/Quote]
hzy694358 2012-03-13
  • 打赏
  • 举报
回复
乱码很正常么,主要是你要知道里面的数据结构
如果是string的话才可以正常显示
unitsphere 2012-03-13
  • 打赏
  • 举报
回复


原来是代码
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstdlib>
#include "math.h"
#include<stdio.h>
#include<stdlib.h>
using namespace std;

int main()
{
const int num=128;
int counts[num]={0};


ifstream ifile("demo", ios::binary);
ofstream ofile("result.txt",ios::binary);


while (!ifile.eof( ))
{

char ch = ifile.get( );


ofile.put(char(ch));




cout << char(ch) << '\t' << endl;








}



ifile.close();

ofile.close();
}

[Quote=引用 1 楼 czh3642210 的回复:]
都不用换扩展名的。。。。直接读就好了。。你把你打开文件的代码发下
[/Quote]
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
刚才那个使用unicode读的
这个乱码是为二进制的
1400/ 000755 000765 000024 00000000000 11715211510 013126 5 ustar 00ericopsomer staff 000000 000000 1400/._.DS_Store 000644 000765 000024 00000000122 11715211515 015026 0 ustar 00ericopsomer staff 000000 000000 Mac OS X 2 R @ [Quote=引用楼主 unitsphere 的回复:]
有一个很的大的文件要处理,其实文件连格式都没有。我就解压并且将文件扩展名换成txt用二进制读入且写入。可是一直是乱码。如何解决?很郁闷
[/Quote]
unitsphere 2012-03-13
  • 打赏
  • 举报
回复


这样的,乱码是
ǜj?鑑偓葬#P\?'韵?拡?嶗
[Quote=引用楼主 unitsphere 的回复:]
有一个很的大的文件要处理,其实文件连格式都没有。我就解压并且将文件扩展名换成txt用二进制读入且写入。可是一直是乱码。如何解决?很郁闷
[/Quote]
面包大师 2012-03-13
  • 打赏
  • 举报
回复
都不用换扩展名的。。。。直接读就好了。。你把你打开文件的代码发下
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
实际上,我用啦C++ 还有JAVA两种程序, 一种使用Unicode 一个是这个二进制。 二进制出来的结果似乎更好一些。Unicode 是中文

[Quote=引用 23 楼 xiarl 的回复:]
首先,文件不需要后缀名,那是方便查询识别用的。代码里读写时也不用。
其次你要是文件本身就是二进制写入的,那么什么样的数据都可能出现,你确定那是文本文件?其实,从你那看多半不是文本文件,哪个文本文件会那么大。
另外,你贴的代码不是unicode的。main做入口函数是unicode么?以我的经验vs似乎不是,不知道你的环境。
再次,你最终想达到什么目的?
嘻嘻
[/Quote]
酒鬼 2012-03-13
  • 打赏
  • 举报
回复
首先,文件不需要后缀名,那是方便查询识别用的。代码里读写时也不用。
其次你要是文件本身就是二进制写入的,那么什么样的数据都可能出现,你确定那是文本文件?其实,从你那看多半不是文本文件,哪个文本文件会那么大。
另外,你贴的代码不是unicode的。main做入口函数是unicode么?以我的经验vs似乎不是,不知道你的环境。
再次,你最终想达到什么目的?
嘻嘻
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
原来的数据是在MAC里面显示的,在Windows下会不会有问题
另外我这样读的话还是可以看到数字,就是写的字母似乎看不到
[Quote=引用 21 楼 hzy694358 的回复:]
你的文件里都是些什么数据,你能举例说明吗
如果内容本就都字串的话,就简单了,直接读取,
选择正确字符集就可以显示出来了,
如果是其他的数据,当然要分析了
[/Quote]
hzy694358 2012-03-13
  • 打赏
  • 举报
回复
你的文件里都是些什么数据,你能举例说明吗
如果内容本就都字串的话,就简单了,直接读取,
选择正确字符集就可以显示出来了,
如果是其他的数据,当然要分析了
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
什么是数据结构?怎么才能知道[Quote=引用 5 楼 hzy694358 的回复:]
乱码很正常么,主要是你要知道里面的数据结构
如果是string的话才可以正常显示
[/Quote]
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
如何解决?

[Quote=引用 12 楼 lhylhy 的回复:]
如果不是英文出乱码很正常。
[/Quote]
unitsphere 2012-03-13
  • 打赏
  • 举报
回复
谢谢啦,可是这个代码 很多错误。
没有注释
还有警告[Quote=引用 17 楼 zhao4zhong1 的回复:]
C/C++ code
#include <sys\stat.h>
#include <io.h>
#include <fcntl.h>
#include <share.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX_CLU_BYTES 6553……
[/Quote]
加载更多回复(3)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧