我在一个文本文件中输入了"r"然后回车,可是用程序读出并放在CEdit时却显示"r屯  "这是为什么?怎么解决?

解决方案 »

  1.   

    回车也是个字符 ascii码为 13.
      

  2.   

    我的代码:
    CFile text;
    CString edit_text;
    text.Open("C:\\text.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeRead,NULL);
    char *text_buf=new char[text.GetLength()];
    text.Read(text_buf,text.GetLength());
    text.Close();
    edit_text=text_buf;
    edit->SetWindowText(edit_text); 
      

  3.   

    char *text_buf=new char[text.GetLength()+1];
    text.Read(text_buf,text.GetLength());
    text_buf[text.GetLength()+1]='\0';
    ...
    正如 KcSoft(KcSoft)所說.
      

  4.   

    是的,代码没错。回车相当于一个 "\n\r",在SetWindowText之前把他们虑掉。在text.Close();前加入text_buf[text.GetLength()-2] = '\0'; 行不行?还有别忘记delete text_buf;哦
      

  5.   

    CFile text;
    CString edit_text;
    text.Open("C:\\text.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeRead,NULL);
    char *text_buf=new char[text.GetLength()];
    text.Read(text_buf,text.GetLength());
    text.Close();
    // edit_text=text_buf;
    edit->SetWindowText(edit_text); 这样做