有木有高手可以帮忙看看,二进制文件写入正常读出乱码。。
文件写入,数组创建完毕的时候数据正常,在存入文件之后,再取出,前几十个数据没有问题,但之后就全成乱码了这是怎么回事?
以下是程序的代码,有没有高手能帮我看看是怎么回事。。。在下感激不尽。。
#include<iostream>
#include<fstream>
using namespace std;
struct course_info //课程信息
{
short int course_ID; //课程编号
char course[20]; //课程名称
char course_intro[360]; //课程简短介绍
short int credit; //学分
};
int main()
{
//** 创建部分 **//
course_info * course_i_Create = new course_info[200];
for ( int i = 0 ; i < 200 ; i ++ )
{
int ID_temp = 100+rand()%899;
course_i_Create[i].course_ID = ID_temp;
course_i_Create[i].credit = 1+rand()%7;
for ( int j = 0 ; j < 20 ; j ++ )
{
course_i_Create[i].course[j]=NULL;
}
for ( int j = 0 ; j < 360 ; j ++ )
{
course_i_Create[i].course_intro[j] = NULL;
}
for ( int j = 0 ; j < 10 ; j ++ )
{
course_i_Create[i].course[j] = 'a'+rand()%25;
}
for ( int j = 0 ; j < 180 ; j ++ )
{
course_i_Create[i].course_intro[j]='a'+rand()%25;
}
}
ofstream file_Create("d:\\course_info.dat",ios::binary|ios::out);
int j = 0 ; file_Create.seekp(0,ios::beg);
do{
file_Create.write((char*)&course_i_Create[j],sizeof(course_info)); j ++;
}while(j<199);
file_Create.close();
system("pause");
//** 读取部分 **//
course_info * course_i = new course_info [300];
cout<<"Loading..."<<endl;
ifstream file("D:\\course_info.dat",ios::binary|ios::in);
file.seekg(0,ios::beg);
int count = 0;
while (!file.eof())
{
file.read((char*)&course_i[count],sizeof(course_info));
count++;
}
file.close();
cout<<"File Loaded"<<endl;
for (int i = 0 ; i < count ; i ++ )
{
cout<<course_i[i].course<<endl;
cout<<endl;
}
cout<<count<<endl;
system("pause");
}
以下是程序的代码,有没有高手能帮我看看是怎么回事。。。在下感激不尽。。
#include<iostream>
#include<fstream>
using namespace std;
struct course_info //课程信息
{
short int course_ID; //课程编号
char course[20]; //课程名称
char course_intro[360]; //课程简短介绍
short int credit; //学分
};
int main()
{
//** 创建部分 **//
course_info * course_i_Create = new course_info[200];
for ( int i = 0 ; i < 200 ; i ++ )
{
int ID_temp = 100+rand()%899;
course_i_Create[i].course_ID = ID_temp;
course_i_Create[i].credit = 1+rand()%7;
for ( int j = 0 ; j < 20 ; j ++ )
{
course_i_Create[i].course[j]=NULL;
}
for ( int j = 0 ; j < 360 ; j ++ )
{
course_i_Create[i].course_intro[j] = NULL;
}
for ( int j = 0 ; j < 10 ; j ++ )
{
course_i_Create[i].course[j] = 'a'+rand()%25;
}
for ( int j = 0 ; j < 180 ; j ++ )
{
course_i_Create[i].course_intro[j]='a'+rand()%25;
}
}
ofstream file_Create("d:\\course_info.dat",ios::binary|ios::out);
int j = 0 ; file_Create.seekp(0,ios::beg);
do{
file_Create.write((char*)&course_i_Create[j],sizeof(course_info)); j ++;
}while(j<199);
file_Create.close();
system("pause");
//** 读取部分 **//
course_info * course_i = new course_info [300];
cout<<"Loading..."<<endl;
ifstream file("D:\\course_info.dat",ios::binary|ios::in);
file.seekg(0,ios::beg);
int count = 0;
while (!file.eof())
{
file.read((char*)&course_i[count],sizeof(course_info));
count++;
}
file.close();
cout<<"File Loaded"<<endl;
for (int i = 0 ; i < count ; i ++ )
{
cout<<course_i[i].course<<endl;
cout<<endl;
}
cout<<count<<endl;
system("pause");
}
...全文
相关推荐
Java读取、写入文件如何解决乱码问题
主要介绍了Java读取、写入文件如何解决乱码问题,需要的朋友可以参考下
jsoncpp 写入乱码解决版本
解决乱码问题,jsoncpp 写入乱码解决版本
mysql5写入和读出乱码解决
我写的例子 复制代码 代码如下:<? require(“adodb/adodb.inc.php”); $conn=newadoconnection(‘mysql’); $conn->connect(“localhost”,”root”,”2027205″,”bh38″) or die(“连接不成功”); $conn->execute(“set names gb2312”); $conn->execute(“INSERT INTO `vv` (`cc`) VALUES (‘换了个编码不知道行不行’);”) or die(“错误”); $rc=$conn->execute(“sele
Python logging模块写入中文出现乱码
主要介绍了Python logging模块写入中文出现乱码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
解决Labview中关于读取txt文本文件,读出来是乱码的问题
解决Labview中关于读取txt文本文件,读出来是乱码的问题


