如何在MFC中把程序的运行结果输出到界面上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MFC中把程序的运行结果输出到界面上相关的知识,希望对你有一定的参考价值。
题目是输入了四个数 然后要输出 所有等于二十四的式子 老师说在MFC不能用PRINTF
该肿么办肿么办嗷。。。。看了其他的解答 有的说要把运行结果放文件里在直接读文件 但我也不会做 这是我的代码 num1 num2 num3 num4 是 输入的值 要交作业 求解脱
void CTest6DLG::OnOK()
// TODO: Add extra validation here
this->UpdateData(true);
int i,j,k,l,n,m,r,save[4];
double num[4]=1,1,1,1,tem1,tem2,tem3,abc=1111;
char sign[5]="+-*/";
// printf("input 4 numbers:");
num[0] = m_num1;
num[1] = m_num2;
num[2] = m_num3;
num[3] = m_num4;
for(i=0;i<4;i++)
//scanf("%lf",num+i); save[i]=num[i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(j!=i)
for(k=0;k<4;k++)
if(k!=i&&k!=j)
for(l=0;l<4;l++)
if(l!=i&&l!=j&&l!=k)
for(n=0;n<4;n++)
for(m=0;m<4;m++)
for(r=0;r<4;r++)
tem1=fun(num[i],num[j],n);
tem2=fun(tem1,num[k],m);
tem3=fun(tem2,num[l],r);
if(tem3==24.0)
printf("(%d%c%d)%c%d%c%d=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
else
if(tem3==-24.0)
printf("%d%c(%d%c%d)%c%d=24\n",save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);
else
if(tem3==1.0/24.0)
printf("%d%c(%d%c%d)%c%d=24\n",save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);
else
if(tem3==-1.0/24.0)
printf("%d%c%d%c(%d%c%d)=24\n",save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);
else
tem1=fun(num[i],num[j],n);
tem2=fun(num[k],num[l],r);
tem3=fun(tem1,tem2,m);
if(tem3==24.0)
printf("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
// CDialog::OnOK();
void CTest6DLG::OnChangenum1()
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
控制台终端的输出流的话,可以用strstream 或stringstream 代替iostream 作为流,流输出完成后,生成的字符串都在流缓冲中,程序可以直接把流缓冲的内容写到控件中。
注意,老的编译器可能不支持 stringstream,就只有使用 strstream 了,用法可以到网上搜索,例子很多。 参考技术A printf("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
这句,替换成下面的代码吧,其实对话框再放一个CEditBox最方便,但。。说起来麻烦,呵呵。
CString str;
str.Format("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
如果都显示,就将几次的str加+起来
最后
AfxMessageBox(str);追问
请问 str.Format 是什么啊 万分感谢
追答CString str;//定义一个字符串
str.Format();//通过格式化的方式给字符串str赋值
AfxMessageBox(str);//将字符串str通过消息框的方式显示出来
你先替换一个试试吧,看来你编程实在不是很熟,不要着急,慢慢来。
能不能加q问啊 我保证不会很罗嗦1025674623
追答百度hi在线
本回答被提问者采纳java 如何在图形界面显示程序运行结果
想要在java图形界面上显示出java程序的运行结果,要怎么弄啊?!
如果只是一些文本要显示,可以在上面加个JTextArea,JTextField之类的组件,用这些组件的对象调用setText(" ")方法(括号里是字符串)来显示文本
比如:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/** 文本区域
*
* @author Administrator
*
*/
public class TextArea extends JFrame
private static final long serialVersionUID = 2306597749734227012L;
private JButton b1 = new JButton("Add Data"), b2 = new JButton("Clear Data");
private JTextArea text = new JTextArea(20, 40);
private Map<String, String> map =
new HashMap<String, String>();
public TextArea()
// Use up all the data:
map.put("a", "1");
map.put("b", "2");
b1.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
// TODO Auto-generated method stub
for(@SuppressWarnings("rawtypes") Map.Entry me : map.entrySet())
text.append(me.getKey()+": "+me.getValue()+"\\n");
);
b2.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
// TODO Auto-generated method stub
text.setText("");
);
setLayout(new FlowLayout());
add(new JScrollPane(text));
add(b1);
add(b2);
/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
GUItools.SwingConsole.run(new TextArea(), 475, 475);
JTextField和这差不多,只不过是显示单行的。
如果要显示其他字体的,可以用HTML格式,如下:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
/** Swing 组件上的HTML
*
* @author Administrator
*
*/
@SuppressWarnings("serial")
public class HTMLButton extends JFrame
private JButton b = new JButton(
"<html><b><font size=+2>"+
"<center>Hello!<br><i>Press me now!");
// 必须使文本以 "<html>" 标记开始。
public HTMLButton()
// TODO Auto-generated constructor stub
b.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
// TODO Auto-generated method stub
add(new JLabel("<html>"+"<i><font size=+4>Kapow!"));
// Force a re-layout to include the new label:
validate();
);
setLayout(new FlowLayout());
add(b);
/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
GUItools.SwingConsole.run(new HTMLButton(), 200, 500);
参考技术A 利用Graphics中的drawSting()函数,该函数可以将一个字符串打印到指定的位置,详细功能参见java api(一个帮助文档,网上可以下到),亦可以在图形界面中添加一个组件TextArea,利用其setText或append函数向其中添加字符型!无论java的运行结果是字符或数字,都可以,但数字要先变为字符串,java中有这个函数! 参考技术B 将结果存在一个字符串中,然后在界面中用一个label显示就可以了! 参考技术C Java私塾——《深入浅出学Java开发初级》系列精品教程
学习Java开发初级部分的知识
第一章:Java入门
第二章:Java基础语法
第三张:Java类和对象
第四章:Java高级类特性
第五章:数组和枚举
第六章:常见累的使用
第七章:抽象类和接口
第八章:异常和断言
下载地址:csdn上可以搜的到
正值他们4周年之际,学费9折 参考技术D 你查看一下api吧。很多方法的。例如lable的setTest 方法
以上是关于如何在MFC中把程序的运行结果输出到界面上的主要内容,如果未能解决你的问题,请参考以下文章