我想在记事本里输出一个CPoint p[100]的横纵坐标。怎么输出。我这么做
         CString str1;
         CString str2;
CFile file;
for(int i=0;i<100;i++)
{
           str1.Format("%d", p[i].x);
           str2.Format("%d", p[i].x);
           file.Open("abc.txt", CFile::modeCreate|CFile::modeWrite);
           file.Write(str1.GetBuffer(0), str1.GetLength());
           file.Write(str2.GetBuffer(0), str2.GetLength());
}
         file.Close();
编译显示有错误。请问怎么办啊,请各位大侠帮忙。

解决方案 »

  1.   

    CFile file;
               file.Open("abc.txt", CFile::modeCreate|CFile::modeWrite);// 在使用之前先打开
    for(int i=0;i<100;i++)
    {
               str1.Format("%d", p[i].x);
               str2.Format("%d", p[i].x);
               file.Write(str1.GetBuffer(0), str1.GetLength());
               file.Write(str2.GetBuffer(0), str2.GetLength());
    }
             file.Close();
      

  2.   

    Write to file:
    void CFileWriteDlg::OnButton1() 
    {
    CFile mWriteFile;
    mWriteFile.Open("c:\\IcInfo.txt",CFile::modeCreate| CFile::modeWrite);
    CArchive ar(&mWriteFile,CArchive::store);////////////////////////
    ar<<CPoint(12,34);
    /////////////////////// ar.Close();
    mWriteFile.Close();
    }Read from file
    void CFileWriteDlg::OnButton2() 
    {
    CFile mWriteFile;
    mWriteFile.Open("c:\\IcInfo.txt",CFile::modeRead);
    CArchive ar(&mWriteFile,CArchive::load);////////////////////////
    CPoint pt;
    ar>>pt;
    CString s;
    s.Format("%d-%d",pt.x,pt.y);
    MessageBox(s);
    /////////////////////// ar.Close();
    mWriteFile.Close();
    }
      

  3.   

    file.Open("abc.txt", CFile::modeCreate|CFile::modeWrite);
    放循环外,你这样还没关闭就又打开文件,当然会出错了
      

  4.   

    确实,这样把open放在循环里是完全没必要的。代码的问题,上面的大哥门讲得很清楚了:没close。顺便我想问下大家,这样write进去的内容会不会是乱码啊???
      

  5.   

    加空格嘛这样写就可以了
    str1.Format("%d  ", p[i].x);
    str2.Format("%d  ", p[i].x);  //这里你写错了,应该是p[i].y
      

  6.   

    文件打开放循环外面,你反正写string形式的,要空开你格式化你的string就是了,加括号都可以
      

  7.   

    这样写进去的内容用记事本打开肯定是乱码,用CStdioFile类
      

  8.   

    如果使用CStdioFile类,则该类有个WriteString函数,该函数将向文件写一行文本
      

  9.   

    分行就
    str1.Format("%d  \r\n", p[i].x);
    str2.Format("%d  \r\n", p[i].x);  //这里你写错了,应该是p[i].y
      

  10.   

    不用MFC也可以,用CRT的fopen和fprintf就可以写到一个文件里面就可以了
      

  11.   

    file.Open("abc.txt", CFile::modeCreate|CFile::modeWrite);
    放在循环外面,结束时要Close()