文本文件乱码-二进制读写,read wrie函数肯定有问题,文本文件显示乱码,屏幕显示正常,急求指导。

问题描述

二进制读写,read wrie函数肯定有问题,文本文件显示乱码,屏幕显示正常,急求指导。

#include
#include
#include
using namespace std;

void main()
{
fstream file("file5.dat",ios::in|ios::out|ios::binary);
if (!file)
{
cout << "file5.txt can't open." << endl;
abort();
}
int i;
for (i = 1; i <= 20; i++)
{
file.write((char *)&i,sizeof(int));
//file << i;
}
long pos = file.tellp();
cout << "Curent byte number:" << pos << endl;

}
这么简洁的程序,各位第一次上来求指导,希望走过路过都能留言。为什么txt打开是乱码呢?如果非要使用write函数,怎样才能使txt正常显示呢?他们说txt读写(其他形式)和打开(二进制)方式如果不一样,就不能正常显示正确结果。求大家解释。一直怀疑这里的wirte函数格式。

解决方案

函数没问题;
你用2进制打开的文件,自然写入的是2进制,用txt方式查看,当然是乱码。
你使用ultraedit, hexeditor,editplus等可以查看16进制文件的编辑器打开文件,就能明白了。

另外,你程序中,打开文件是file5.dat,而打开失败提示则是file5.txt,自己想想为什么会这样吧;我想你下意识的是想操作文件文件吧。而代码却是写2进制文件。

时间: 2024-12-03 09:23:02

文本文件乱码-二进制读写,read wrie函数肯定有问题,文本文件显示乱码,屏幕显示正常,急求指导。的相关文章

c++-这个程序问题出在哪呢?没有编译错误,但运行乱码。。是主函数的问题吗?

问题描述 这个程序问题出在哪呢?没有编译错误,但运行乱码..是主函数的问题吗? #include using namespace std; class zrf_Ratio { public: zrf_Ratio(){} zrf_Ratio(int r1,int r2):num(r1),den(r2){} zrf_Ratio f1(zrf_Ratio& z) { int r,m=z.num,n=z.den; while(r=z.num%z.den) { z.num=z.den; z.den=r;

C#二进制字节数组操作函数 截取字节数组SubByte

C#二进制字节数组操作函数 截取字节数组SubByte /// <summary> /// 截取字节数组 /// </summary> /// <param name="srcBytes">要截取的字节数组</param> /// <param name="startIndex">开始截取位置的索引</param> /// <param name="length">

JSP页面显示乱码问题的解决方案

js|解决|问题|显示|页面 一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接时出现乱码 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考. 一.JSP页面显示乱码 下面的显示页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title> <meta http-equiv="Con

动态网页制作技术JSP页面显示乱码问题的解决

js|动态|解决|网页|问题|显示|页面 动态网页制作技术 JSP教程 网页页面乱码 解决JSP页面显示乱码问题. 用JSP开发网站过程中可能会有三种情况会产生乱码. 一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接时出现乱码 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考. 一.JSP页面显示乱码 下面的显示页面(display.jsp)就出现乱码: <html> <head&

stm32不停地发送一个字节的数据,mfc编写的上位机接收到了但是显示乱码

问题描述 stm32不停地发送一个字节的数据,mfc编写的上位机接收到了但是显示乱码 用MFC写了一个串口接收的函数,为了测试,单片机stm32每隔一秒不停地发送同一个数,比如是0x32,想显示在接收框里面,但是每次显示都是乱码,如果以16进制显示就是8位16进制码. 设置断点调试了一下,发现bt是成功接收到了的,但是以cstring显示就乱码了,为什么呢? 代码如下: void C无人机地面控制终端Dlg::OnCommMscomm1() { // TODO: 在此处添加消息处理程序代码 VA

写了一个小程序,在手机上面显示乱码

问题描述 在调试的时候没有问题,但是打包成jar安装在手机里读数据库的数据就出现乱码了. 解决方案 解决方案二:很正常,导致这种问题的情况有很多种.解决方案三:能不能大概提供点解决办法呢解决方案四:应该是编码的问题,手机一般支持UNIcode地解决方案五:在数据写入和读取的时候进行编码转换.解决方案六:写入数据库时用WRITEUTF()函数.读出是用READUTF()函数.就不会有乱码.解决方案七:URL编码转换,服务器端,编码转换,,另外查下手机默认的编码格式只要是统一编码了,,,问题就解决了

32 卡文件系统-STM32FAT文件系统,写入文件后显示乱码

问题描述 STM32FAT文件系统,写入文件后显示乱码 本人是新手,最近再做一个串口接收字符串到buffer,然后把buffer里的数据写到SD卡里,FAT文件系统我是移植了官方的,串口能正常接收数据,也能写卡,但是我把SD卡插到电脑上查看写的结果时,显示乱码,请教各路大神,这是为什么?这是我写的SD卡写文件函数: void WriteSDFile(unsigned char * USARTx_RX_BUF) { disk_initialize(0);//初始化SD卡 f_mount(0, &f

html文件利用ajax方法 通过 servlet 获取数据库信息 显示乱码,求解?

问题描述 html文件利用ajax方法 通过 servlet 获取数据库信息 显示乱码,求解?suggest.html:<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><script language="JavaScript" type="text/javascript" sr

C/S程序中,客户端接收二进制内存流如何释放?急求...

问题描述 C/S程序中,我在客户端接收服务器端发来的MemoryStream数据.定义://获取网络流NetworkStreamnetworkStream=client.GetStream();//将网络流作为二进制读写对象br=newBinaryReader(networkStream);调用线程:privatevoidReceiveData(){stringreceiveString=null;while(isExit==false)//进入循环接收{try{receiveString=br