在MFC中这样操作文件怎么不对?

yoyota 2006-04-29 06:02:56
我想实现的是:把数组 m_hist里面的浮点数据逐个读到文件中,以方便检查数据的正确性!
相应的代码如下:

#include <fstream>
..........
..........
ofstream outfile("hist",ios_base::out);
if(!outfile)
{
cerr<<"can't open file"<<endl;
exit(-1);
}
else
{
for (i=0; i<256; i++)
{
if( (i%16) == 0)
{
outfile<<endl;
outfile<<m_hist[i]<<", ";
}
else
{
outfile<<m_hist[i]<<", ";
}
}
}
结果编译出错,说ofstream不认识,明明是定义了头文件的,是不是MFC里面不能这样用?

现改用CFile文件类:
代码如下:
CFile mfile;
mfile.Open("hist.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
CArchive ar( &mfile, CArchive::store );
CString str;
for (i=0; i<256; i++)
{
if( (i%16) == 0)
{
ar<<"\n";
ar<<m_hist[i]<<",";
}
else
{
ar<<str<<",";
}
}

ar.Close();
mfile.Close();
打开文本文件 hist.txt, 发现诸如"\n"换行,“,”逗号这些都变成小方块了,ms不认识,另外,如果我在打开模式中加入 CFile::typetext 这一项,编译也通不过,不知为何?
关于文件读写的问题始终有很多不清楚的地方,还望各位点拨迷津!
...全文
117 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhzxlqt 2006-05-01
  • 打赏
  • 举报
回复
你的系统或VC有问题
我给你的代码,我是测试通过的,并且打开生成的文件看过,没有问题.
cppseekey 2006-04-29
  • 打赏
  • 举报
回复
(2) 用<fstream>, using namespace std 可以, 但碰到 cerr 出错,提示undeclared identifier;
对于这个需要
#include <iostream>
yoyota 2006-04-29
  • 打赏
  • 举报
回复
首先谢谢各位!
碰到的问题如下:
(1) 改成<fstream.h>,找不到这个头文件
(2) 用<fstream>, using namespace std 可以, 但碰到 cerr 出错,提示undeclared identifier;
(3) CFile中CFile::typeText一加上还是出错。
(4) 把 "\n"=>"\r\n",输出仍然是乱码,不是换行。
DentistryDoctor 2006-04-29
  • 打赏
  • 举报
回复
"\n"=>"\r\n"
xhzxlqt 2006-04-29
  • 打赏
  • 举报
回复
#include <fstream.h>//这儿你少了.h

.........
void COfstreamDlg::OnButton1()
{
// TODO: Add your control notification handler code here
float m_hist[256];
for (int j=1; j<257; j++)
{
m_hist[j]=(float)rand()/(j*1.2);
}
ofstream outfile("F:\\vcuser\\Ofstream\\Debug\\hist",ios::out);//这儿需要改为ios::
if(!outfile)
{
cerr<<"can't open file"<<endl;
exit(-1);
}
else
{
for (int i=0; i<256; i++)
{
if( (i%8) == 0)
{
outfile<<endl;
outfile<<m_hist[i]<<", ";
}
else
{
outfile<<m_hist[i]<<", ";
}
}
}

}
handsomerun 2006-04-29
  • 打赏
  • 举报
回复
用CFile的话

CFile::typeText
T大写
handsomerun 2006-04-29
  • 打赏
  • 举报
回复
如果是
#include <fstream>

那么还要加
using namespace std;
handsomerun 2006-04-29
  • 打赏
  • 举报
回复
#include <fstream.h>

ofstream outfile("hist",ios_base::out);

=>

ofstream outfile("hist",ios::out);
yoyota 2006-04-29
  • 打赏
  • 举报
回复
上面代码没贴好,再贴一次

ofstream outfile("hist",ios_base::out);
if(!outfile)
{
cerr<<"can't open file"<<endl;
exit(-1);
}
else
{
for (i=0; i<256; i++)
{
if( (i%16) == 0)
{
outfile<<endl;
outfile<<m_hist[i]<<", ";
}
else
{
outfile<<m_hist[i]<<", ";
}
}
}
一、VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言 VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第二部分:VS2010/MFC应用程序框架 VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架) VS2010/MFC编程入门之三(VS2010应用程序工程文件的组成结构) VS2010/MFC编程入门之四(MFC应用程序框架分析) VS2010/MFC编程入门之五(MFC消息映射机制概述) 第三部分:对话框 VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性) VS2010/MFC编程入门之七(对话框:为对话框添加控件) VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量) VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数) VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序) VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程) VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示) VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍) VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示) VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示) VS2010/MFC编程入门之十六(对话框:消息对话框) VS2010/MFC编程入门之十七(对话框:文件对话框) VS2010/MFC编程入门之十八(对话框:字体对话框) VS2010/MFC编程入门之十九(对话框:颜色对话框) 第四部分:常用控件 VS2010/MFC编程入门之二十(常用控件:静态文本框) VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box) VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解) VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用) VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类) VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC编程入门之三十九(文档、视图和框架:概述) VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC常用类 VS2010/MFC编程入门之四十二(MFC常用类:CString类) VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类) VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer) VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类) VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理) 第八部分:字体和文本输出 VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类) VS2010/MFC编程入门之四十八(字体和文本输出:文本输出) 第九部分:图形图像 VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数) VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen) VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush) 第十部分:Ribbon界面开发 VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架) VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件) VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数) 本文来源于鸡啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/257.html

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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