在下是新手,提的问题可能有些低级,望各位见谅!
我想将edit控件中的内容用if语句根据m_mradio1的值分别写入不同文件中,代码如下:
void CHGONGBU10::OnOK() 
{
// TODO: Add extra validation here
UpdateData();
CString m_mcs;
       CHZTSC sc;
     if(sc.m_mradio1==0)
 {
            m_mcs="工步          工步内容                             进给量     背吃刀量    切削深度\r\n";
   m_mcs+=m_heditgb10;
   FILE*fp=fopen("e:\\chilun\\gb10.txt","w");
            fprintf(fp,"%s",m_mcs.GetBuffer(500));
   fclose(fp);
 }
 else if(sc.m_mradio1==1)
 {
             m_mcs="工步 工步内容 进给量 背吃刀量 切削深度\r\n";
   m_mcs+=m_heditgb10;
            FILE*fp=fopen("e:\\duangai\\gb10.txt","w");   
            fprintf(fp,"%s",m_mcs.GetBuffer(500));   
            fclose(fp);  
 }
 else if(sc.m_mradio1==2)
 {
   m_mcs="工步 工步内容  进给量 背吃刀量 切削深度\r\n";
   m_mcs+=m_heditgb10;
            FILE*fp=fopen("e:\\zhou\\gb10.txt","w");   
            fprintf(fp,"%s",m_mcs.GetBuffer(500));   
            fclose(fp);  
 } 
CDialog::OnOK();
}
m_mradio1直接在类中定义。不加if语句可以写入文件,加了if语句后就无法写入文件。不知道原因,请大侠指点迷津。

解决方案 »

  1.   

    CHZTSC sc; 
        if(sc.m_mradio1==0) 
    sc.m_mradio1没有初始化,当然不会写入文件了
      

  2.   

    下个断点看看sc.m_mradio1的值,,要不再加
    else 

      m_mcs="工步 工步内容  进给量 背吃刀量 切削深度\r\n"; 
      m_mcs+=m_heditgb10; 
                FILE*fp=fopen("e:\\zhou\\other.txt","w");  
                fprintf(fp,"%s",m_mcs.GetBuffer(500));  
                fclose(fp);  

      

  3.   

    还在用 FILE* ?怎么不用 CFile ?
      

  4.   

    m_mradio1的值是m_radio1赋予的,hztsc.m_mradio1=ljlb.m_radio1。m_radio1是单选按钮的变量,在定义变量时自动赋值-1。
    有没有哪位大侠提供点别的回答啊!
      

  5.   

    和FILE或CFILE没关,是if语句的问题
      

  6.   

    去除:CHZTSC sc;// 这是一个新的变量,与原来的radio状态毫无关系。 
    直接用hztsc.m_mradio1。
      

  7.   

    那么你的sc.m_mradio1就是等于-1,你并没有为他赋值,hztsc.m_mradio1=ljlb.m_radio1赋值和sc.m_mradio1没有关系
      

  8.   

    莫非你认为sc和hztsc都是HZTSC类型的,他们的成员变量m_mradio1就是相等的?
      

  9.   

    你是不是连hztsc都没初始化?
      

  10.   

    在对话框初始化中加入对hztsc的初始化
      

  11.   

    不行,以初始化就会出现如下问题:
       error C2582: 'CHZTSC' : 'operator =' function is unavailable
      

  12.   

    创建了sc这个对象后 对sc.mradio1进行初始化然后进行赋值 你既没有初始化 也没有复制 怎么判断
    回去看下面向对象编程
      

  13.   

    CString m_mcs; 
          CHZTSC sc; 
        if(sc.m_mradio1==0) 

    ......
    sc 在此处定义了一个新的对象,没有对sc.m_mradio1进行赋值,初始值为-1,所以根本就不可能进入到0,1,2写文件
    操作~~~~
      

  14.   

    既然初始值是-1, 必然进入不了三种情况中的任何一种。
    是radioButton, 应当在界面中选中,看看值是否变化,若不变化,说明该值没有绑定到radioButton组里面。