这段程序为什么出现乱码呢?怎样才能改动最小而消除乱码呢?

yell_ren 2007-04-26 08:17:10
#include<iostream>
#include<fstream>
using namespace std;

int main()
{
char war[50],hao[50];
ofstream offile("wjj.txt");
cout << "输入书名 : ";
cin.get(war,50,'\n');
offile.write((char*)&war,sizeof(char));
offile.close();
ifstream iffile("wjj.txt");
iffile.seekg(1,ios::beg);
iffile.read((char*)&hao,sizeof(char));
cout <<"\n"<<"shu_ming"<< hao <<endl;
return 0;
}

...全文
254 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jenycheng 2007-04-27
  • 打赏
  • 举报
回复
char war[50] = {0} ;
char hao[50] = {0} ;

改动挺小的吧!

初始化就没事了
lidongri 2007-04-27
  • 打赏
  • 举报
回复
memset
xlbdan 2007-04-27
  • 打赏
  • 举报
回复
初始化,否则值随机
xuzheng318 2007-04-27
  • 打赏
  • 举报
回复
对数组需要进行初始化!
memset
jixingzhong 2007-04-27
  • 打赏
  • 举报
回复
或者:
char war[50]="",hao[50]=""; //OK
jixingzhong 2007-04-27
  • 打赏
  • 举报
回复
char war[50],hao[50];
==》
char war[50]={0},hao[50]={0};
followme163 2007-04-27
  • 打赏
  • 举报
回复
char war[50] = {0} ;
char hao[50] = {0} ;
以上只能用在初始化中,
运行时用*war=*hao='\0';代替memset,速度快
banzhiyu 2007-04-27
  • 打赏
  • 举报
回复
好习惯,我认为定义数组时尽量要初始化!以免不必要的麻烦。
wangzhangyong411 2007-04-26
  • 打赏
  • 举报
回复
支持楼上的,

数组初始化是随机的

你不初始化就会出错

一般memset(war,0,50);或char war[50] = {0};

飞哥 2007-04-26
  • 打赏
  • 举报
回复
memset(war,0,50);
memset(hao,0,50);

65,213

社区成员

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

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