请问将数字写入文件中的方法//怎么显示乱码呢?

mirroatl187 2014-11-18 11:29:02

int m_ID = 0;



bool CRowShowObj::WriteFile(std::ofstream& tableFile)
{
try
{
if (tableFile==NULL)
{
return false;
}
tableFile.write((char*)(&m_ID),sizeof(m_ID));
}
catch(...)
{
//TRACE0((LPCTSTR)e.Description());
return false;
}
return true;
}

bool WriteFile(string& filePath)
{
ofstream file;//以输出方式打开文件
file.open(filePath.c_str(),ios::binary|ios::out);
WriteFile(file);
file.close();
return res;
}

int _tmain(int argc, _TCHAR* argv[])
{
WriteFile(string("D:\\DataText.txt"));
return 0;
}
...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
michael2988 2014-11-18
  • 打赏
  • 举报
回复
引用 5 楼 mirroatl187 的回复:
那怎么办啊????正确的怎么写 [quote=引用 1 楼 michael2988 的回复:]
file.open(filePath.c_str(),ios::binary|ios::out);
二进制方式
[/quote] 去掉 ios::binary 标记。 且你写的函数也有问题,write是写字符串的
tableFile.write("0", 1);
tableFile << m_ID;
版主大哥 2014-11-18
  • 打赏
  • 举报
回复
哦 上面 我是把m_ID = 1 才是上面的结果 如果是 m_ID = 0 那结果就是 00 00 00 00了
版主大哥 2014-11-18
  • 打赏
  • 举报
回复
char ‘0’ 就是不可显示的哦,用记事本打开肯定看不到

可以用其他工具,以二进制打开,就可以看到了

比如 你写在D盘的DataText.txt中后,将后缀名 .txt去掉,然后将文件拖到vs中

如:
mirroatl187 2014-11-18
  • 打赏
  • 举报
回复
那怎么办啊????正确的怎么写
引用 1 楼 michael2988 的回复:
file.open(filePath.c_str(),ios::binary|ios::out);
二进制方式
zhouxiaofeng1021 2014-11-18
  • 打赏
  • 举报
回复
file.open(filePath.c_str(),ios::binary|ios::out); 这句话就说明问题 要显示数字请用txt或者unicode的模式 ios::binary右键转到定义找到你要的模式
starytx 2014-11-18
  • 打赏
  • 举报
回复
你以二进制方式写文件,却写进了txt文本格式中
michael2988 2014-11-18
  • 打赏
  • 举报
回复
file.open(filePath.c_str(),ios::binary|ios::out);
二进制方式

64,282

社区成员

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

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