CStdioFile cf("D:\\gequliebiao.txt",CFile::modeRead|CFile::typeText);
    CString content;

    while(cf.ReadString(content))
    {
MessageBox(content);
    }D盘的文本只有三条数据:如下
C:\Documents and Settings\Administrator\桌面\蓝莲花.mp3 
C:\Documents and Settings\Administrator\桌面\人质.mp3 
C:\Documents and Settings\Administrator\桌面\我期待.mp3 读取的时候,只是弹出了2条数据,只有第一条数据是正确的,第二条数据是第三行的,而且是不完整的,为什么会这样呢?
其中写入数据的时候,使用的是CFile Write方法
代码如下:
                  CFile cf;
if(!_access("D:\\gequliebiao.txt",0)==0)//不存在路径
{

cf.Open("D:\\gequliebiao.txt",CFile::modeCreate|CFile::modeWrite);
}
else
{
cf.Open("D:\\gequliebiao.txt",CFile::modeWrite|CFile::modeNoTruncate);//注意标志
} if(cf)
{
cf.SeekToEnd();//在写入之前,把光标移动到最后
cf.Write(PathName,PathName.GetLength()+1);
gemings.push_back(CString(name.c_str()));
}
cf.Close();
谁能帮一下啊?

解决方案 »

  1.   

    CStdioFile file写!
    用CFile 的时候你要加换行符号.
    看你的写法根本没加换行符号,当然读不出来,
    char dd[]="C:\\Documents and Settings\\Administrator\\桌面\\蓝莲花.mp3\nC:\\Documents and Settings\\Administrator\\桌面\\22.mp3\n";
    cf.Write(dd,strlen(dd));
      

  2.   

    这个要一行一行的读取比较麻烦吧,直接用CStdioFile的ReadString可以一行行的读取
      

  3.   

    恩,后加加上换行符,果真可以了,谢谢了。
    CFile cf;
    if(!_access("D:\\gequliebiao.txt",0)==0)//不存在路径
    {

    cf.Open("D:\\gequliebiao.txt",CFile::modeCreate|CFile::modeWrite);
    }
    else
    {
    cf.Open("D:\\gequliebiao.txt",CFile::modeWrite|CFile::modeNoTruncate);//注意标志
    } if(cf)
    {
    cf.SeekToEnd();//在写入之前,把光标移动到最后
    cf.Write(PathName,PathName.GetLength());
    cf.SeekToEnd();
    cf.Write("\n",strlen("\n"));
    gemings.push_back(CString(name.c_str()));
    }
    cf.Close(); }