你好,请问,MFC中怎样在指定的路径创建一个TXT文档,并把指定数组中的数据写入其中,数组更新一次写一次

你好,请问,MFC中怎样在指定的路径创建一个TXT文档,并把指定数组中的数据写入TXT文档中。注:数组中的数据是利用socket发送过来的,所以数组是一直在更新的,这里希... 你好,请问,MFC中怎样在指定的路径创建一个TXT文档,并把指定数组中的数据写入TXT文档中。
注:数组中的数据是利用socket发送过来的,所以数组是一直在更新的,这里希望每次数组更新后地,都能把更新的数据存入TXT文档中。谢谢
void C文件读写Dlg::OnWriteButton()
{
char* pszFileName="F:\\myfile.txt";
CStdioFile myFile;
CFileException fileException;
if(myFile.Open(pszFileName,CFile::typeText|CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate),&fileException)
{
CString strOrder;
strOrder.Format("%d,%.3f\t",66,88.88);
myFile.WriteString(strOrder);
myFile.Close(); }
else
{
TRACE("Can't open file %s,error=%u\n",pszFileName,fileException.m_cause);
}
}
这是MFC新建的一个对话框里的一个按钮的消息处理函数,默认用的Unicode,如果改成多字符,这段代码没问题了,但是其它地方又会出现很多问题。所以整个工程还是需要是Unicode。我想知道怎样能保持Unicode不变,而让上面这段代码能正确执行。谢谢!
展开
 我来答
zdh305
2011-10-29
知道答主
回答量:4
采纳率:0%
帮助的人:8.4万
展开全部
void C文件读写Dlg::OnWriteButton()
{
char* pszFileName="F:\\myfile.txt";
CStdioFile myFile;
CFileException fileException;
if(myFile.Open(pszFileName,CFile::typeText|CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate),&fileException)
{
CString strOrder;
strOrder.Format("%d,%.3f\t",66,88.88);
myFile.WriteString(strOrder);
myFile.Close(); }
else
{
TRACE("Can't open file %s,error=%u\n",pszFileName,fileException.m_cause);
}
}
西瓜妈妈育儿助手
2011-10-27 · 新手妈妈育儿助手,24小时在线的育儿专家
西瓜妈妈育儿助手
采纳数:158 获赞数:549

向TA提问 私信TA
展开全部
void CTestDlgDlg::OnGetpath()
{
// TODO: Add your control notification handler code here
char *pch="abdcefghigklmnop";
CFileDialog dlg(FALSE,"txt","baocun",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"TEXT FILES(*.txt)\0.txt\0");
if(IDOK==dlg.DoModal())
{
CFile fp(dlg.GetFileName(),CFile::modeCreate | CFile::modeWrite |CFile::modeNoTruncate);
fp.SeekToEnd();
fp.Write(pch,strlen(pch));
fp.Close();
}
}
每次再次写的时候会弹出对话框,文件已存在,是否替换,选是就可以了,如果嫌麻烦,
CFileDialog dlg(FALSE,"txt","baocun",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"TEXT FILES(*.txt)\0.txt\0");
把这句改成CFileDialog dlg(FALSE,"","suibian");保存名字也不用取,因为是用文件其实是用CFile创建的,名字由CFile文件指定
吧你要写的数组替换掉我的字符串就可以了
追问
我现在已经利用CStdioFile实现了TXT文件的写入。但是,有了新的问题,每次点击写入按钮后,不论之前TXT里有无内容,无论是何内容,最后都会变成按钮消息处理函数里字符串里的内容。而我要的是,点一次,写入一次字符串里的内容,也就是说不覆盖前面写入的内容。可以吗?
追答
不覆盖前面写入的内容当然是可以的。
我平时都用cflile的,cstdiofile用的比较少,不过cstdiofile是从cfile派生出来的,上面的程序用cfile写的,可以实现,用cstiofile应该更能实现。你把写入模式改成上面的那样CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate,其中CFile::modeNoTruncate就是不覆盖模式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
judyfeng1980
2011-10-27 · TA获得超过3255个赞
知道小有建树答主
回答量:935
采纳率:0%
帮助的人:710万
展开全部
char filename[]="C:\\test.txt";
char message[]="this is a test message\r\n";
FILE* hFileDst = fopen(filename, "wb");
fprintf(hFileDst, message);
fclose(hFileDst);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cknwxors
2011-11-03
知道答主
回答量:26
采纳率:0%
帮助的人:12.3万
展开全部
#include
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式