onButton2()
{    
         CFile file;
int num=0;
         file.Open("Server.ini",CFile::modeReadWrite)
         file.Read(&num,sizeof(int));
num++; file.Seek(0,CFile::begin);
file.Write(&num,sizeof(int));
file.Close();
}
当我按了9次时(num=10 时)文件里的值就没了,变成了“:”
真么回事啊。
快帮帮我呀,我多多给分

解决方案 »

  1.   

    你按了9次后num的值会是10?
    你没按一次都会执行int num=0;
    所以没按一次后num的值都为1,
    最起码你应该把
    int num=0;放到该函数的外面定义
      

  2.   

    o  哦,我的Server.ini文件里数值是0,
    file.Read(&num,sizeof(int));//num=0
    num++;以后又存入文件中,这时Server.ini就是1了,
    若再按num就是2了, 直到num 为10时,Server.ini就不是10了
      

  3.   

    我想他的意思是这样,不是用NUM计数,而是连点了九下,发现问题。
      

  4.   

    大概是数的size问题造成的!!
      

  5.   

    我想是这样,你用ULTRAEDIT打开你淂文体看下,比方如果INT是两个字节(实际跟平台有关)。
    你1--9淂时候,你可看到内存里是31-39,你想看10淂时候,里面是3130,但目前淂做法实际里面是3A.所以。
      

  6.   

    void CCsdn3Dlg::OnButton3() 
    {
    CFile file;
    int num=0;
    char  str[100];
    file.Open("csdn3.ini",CFile::modeReadWrite);
    file.Read((void *)(LPCTSTR)str,sizeof(int));
    sscanf(str,"%d",&num);
    num++;
    sprintf(str,"%d",num);
    file.Seek(0,CFile::begin);
    file.Write(str,sizeof(int));
    file.Close();
    // TODO: Add your control notification handler code here

    }
    文件的初始值为0.
      

  7.   

    用int 去接收就是有问题。
    用char 可以了。
    呵呵。。
      

  8.   

    file.Read(&num,sizeof(int));
    //读取四个字符(32位机上),以字符的方式放在num(实际上是整数)所在的地址
      

  9.   

    void CCsdn3Dlg::OnButton5() 
    {
    int num = GetPrivateProfileInt("csdn","num",0,"Server.ini");
    }void CCsdn3Dlg::OnButton6() 
    {
    int num = 5;
    CString strNum;
    strNum.Format("%d",num);
    WritePrivateProfileString("csdn","num",strNum,"Server.ini");
    }
      

  10.   

    void CCsdn3Dlg::OnButton7() 
    {
    int num = 5;
    AfxGetApp()->WriteProfileInt("csdn","num",num);
    }void CCsdn3Dlg::OnButton8() 
    {
    int num = AfxGetApp()->GetProfileInt("csdn","num",0);
    }数据放在程序同名的ini文件或注册表
    如我的程序名为csdn3.exe,
    刚内容放在csdn3.ini