我在Edit控件中放入文字,如果显式的用
m_NoteString = _T("Test line 1\r\nTest line 2\r\n");
然后调用UpdateData(false),就显示正常,但我将这段文字用UE存为纯文本(.txt)文件后,读入数据到m_NoteString.然后调用UpdateData(false),结果显示错误,不肯换行了,这是为什么。我看过读入的数据,\r\n的地方是0x0D 0x0A.使用RichEdit是否不会有这种问题?

解决方案 »

  1.   

    你读文件是用binary方式读的吗?
      

  2.   

    \r\n的确是0X0D,0X0A啊,没错的.
    把你读文件的代码贴来看看?
      

  3.   

    FILE *fp = fopen("Notes.TXT","rt+");
    if (fp){
    fseek(fp,0,SEEK_END);
    int len = ftell(fp);
    fseek(fp,0,SEEK_SET);
    BYTE *pbuf = new BYTE[len+1];
    memset(pbuf,0,len+1);
    fread(pbuf,1,len,fp);
    m_NoteString = _T(pbuf);
    fclose(fp);
    UpdateData(false);
    }代码。
    在对话框类中定义的CString m_NoteString;
      

  4.   


    m_NoteString = _T(pbuf);换为
    m_NoteString = _T("test line1\r\ntest line 2\r\n");
    就没有问题。
    但是我需要从文件中读入啊!
      

  5.   

    FILE *fp = fopen("Notes.TXT","r+b");//用二进制方式读!
    if (fp){                            
    fseek(fp,0,SEEK_END);
    int len = ftell(fp);
    fseek(fp,0,SEEK_SET);
    BYTE *pbuf = new BYTE[len+1];
    memset(pbuf,0,len+1);
    fread(pbuf,1,len,fp);
    m_NoteString = _T(pbuf);
    fclose(fp);
    UpdateData(false);
    }
      

  6.   

    啊,我找到原因了,rt方式打开后,它把0x0d给弄没了,要命。
    现在改用rb方式打开后就没有问题了!
    谢谢各位的帮助。
    谢谢oldworm(oldworm) and everandforever(Forever) !结贴。
      

  7.   

    结贴了,我还是要说一句
    如果你的文件是这样写的:
    FILE *fp1=fopen("Notes.TXT","w");
    fprintf(fp,"%s\r\n%s\r\n","aaaa","sdsadasd");
    fclose(fp1);
    你那最初的程序可以正确显示!