怎样在对话框上按一下按钮输出程序中的数据? do{.......x= ... ; //x的计算式,且x的值是收敛的.......}while(x>0.00001);那么怎样在对话框上按一下按钮,弹出要保存文件的路径的对话框,且输出包含x的所有的值的文本(因为x迭代了)?我在对话框上加了一个按钮控件,且ID设为ID_FILE_SAVE_AS,其函数为OnFileSaveAs() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1,在你的按扭里用cfiledlg生成一个文件对话框。2,得到文件名。3,用cfile类打开文件,并把x的值写进去。另外,如果你只是想看看x的值的话,可以用控制台啊。 void C**Dlg::Calculate(){do{.......x= ... ; //x的计算式,且x的值是收敛的.......}while(x>0.00001);UpdateData(false);}void C**Dlg::OnFileSaveAs() { CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||"); if(dlg.DoModal()==IDOK) { CString str; str =dlg.GetFileName(); CFile file; file.Open(str,CFile::modeCreate |CFile::modeWrite ); str.Format("%f",x); file.Write(str,str.GetLength()); file.Close(); } }弹出了要保存文件的路径的对话框,可是Calculate()中的x怎样赋值给OnFileSaveAs()呢? 需要设置一个全局的变量存储x的值,否则x的生命周期只在Calculate()里面。 把x保存为成员变量m_x;这样你的OnFileSaveAs就可以访问m_x了 设置变量x为C**Dlg类的一个成员变量m_x,然后代码修改为:void C**Dlg::Calculate(){do{.......m_x= ... ; //x的计算式,且x的值是收敛的.......}while(x>0.00001);UpdateData(false);}void C**Dlg::OnFileSaveAs() { CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||"); if(dlg.DoModal()==IDOK) { Calculate(); CString str; str =dlg.GetFileName(); CFile file; file.Open(str,CFile::modeCreate |CFile::modeWrite ); str.Format("%f",m_x); file.Write(str,str.GetLength()); file.Close(); } } 全局变量我设了,关键是我想输出那个do while循环中m_x的所有的收敛的值。有没有办法呢? 输出那个do while循环中m_x的所有的收敛的值.void C**Dlg::Calculate(CString str){do{.......m_x= ... ; //x的计算式,且x的值是收敛的 CFile file; file.Open(str,CFile::modeCreate |CFile::modeWrite ); str.Format("%f",m_x); file.Write(str,str.GetLength()); file.Close(); .......}while(x>0.00001);UpdateData(false);}void C**Dlg::OnFileSaveAs() { CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||"); if(dlg.DoModal()==IDOK) { CString str; str =dlg.GetFileName(); Calculate(str); } } 错了,应该是:void C**Dlg::Calculate(CFile &file){do{.......m_x= ... ; //x的计算式,且x的值是收敛的 CString str; str.Format("%f",m_x); file.Write(str,str.GetLength()); .......}while(x>0.00001);UpdateData(false);}void C**Dlg::OnFileSaveAs() { CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||"); if(dlg.DoModal()==IDOK) { CString str; str =dlg.GetFileName(); CFile file; file.Open(str,CFile::modeCreate |CFile::modeWrite ); Calculate(file); file.Close(); } } 我是个Visual C++的菜鸟,有道简单的题不知道错哪了,拜师啊! 添加了#ifndef为何还提示函数重复定义 OpengGL载入位图并创建纹理的问题 怎样在VC++中用嵌入汇编语言编写中断处理程序啊 字符串是一个数学表达式,怎么才能知道他的值 菜鸟问:有关Vc++.net的问题 怎么把CListCtrl的背景设为透明 VC2010以OCCi访问oracle10g配置成功经验记录 进程——内存映射 Dll高手快来帮忙,感激不尽! MFC的基类 为什么没进入onTimer
2,得到文件名。
3,用cfile类打开文件,并把x的值写进去。
另外,如果你只是想看看x的值的话,可以用控制台啊。
void C**Dlg::Calculate()
{
do{
.......
x= ... ; //x的计算式,且x的值是收敛的
.......
}while(x>0.00001);
UpdateData(false);
}void C**Dlg::OnFileSaveAs()
{ CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||");
if(dlg.DoModal()==IDOK)
{
CString str;
str =dlg.GetFileName();
CFile file;
file.Open(str,CFile::modeCreate |CFile::modeWrite );
str.Format("%f",x);
file.Write(str,str.GetLength());
file.Close();
}
}弹出了要保存文件的路径的对话框,可是Calculate()中的x怎样赋值给OnFileSaveAs()呢?
void C**Dlg::Calculate()
{
do{
.......
m_x= ... ; //x的计算式,且x的值是收敛的
.......
}while(x>0.00001);
UpdateData(false);
}void C**Dlg::OnFileSaveAs()
{ CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||");
if(dlg.DoModal()==IDOK)
{
Calculate();
CString str;
str =dlg.GetFileName();
CFile file;
file.Open(str,CFile::modeCreate |CFile::modeWrite );
str.Format("%f",m_x);
file.Write(str,str.GetLength());
file.Close();
}
}
输出那个do while循环中m_x的所有的收敛的值.
void C**Dlg::Calculate(CString str)
{
do{
.......
m_x= ... ; //x的计算式,且x的值是收敛的 CFile file;
file.Open(str,CFile::modeCreate |CFile::modeWrite );
str.Format("%f",m_x);
file.Write(str,str.GetLength());
file.Close(); .......
}while(x>0.00001);
UpdateData(false);
}void C**Dlg::OnFileSaveAs()
{ CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||");
if(dlg.DoModal()==IDOK)
{
CString str;
str =dlg.GetFileName();
Calculate(str); }
}
{
do{
.......
m_x= ... ; //x的计算式,且x的值是收敛的 CString str;
str.Format("%f",m_x);
file.Write(str,str.GetLength());
.......
}while(x>0.00001);
UpdateData(false);
}void C**Dlg::OnFileSaveAs()
{ CFileDialog dlg(false,NULL,NULL,0,"数据文件(*.dat)|*.dat||");
if(dlg.DoModal()==IDOK)
{
CString str;
str =dlg.GetFileName();
CFile file;
file.Open(str,CFile::modeCreate |CFile::modeWrite ); Calculate(file); file.Close();
}
}