将一个文本文档(txt)读入edit box,为何edit box不能识别txt中的换行?该如何解决

将一个文本文档(txt)读入edit box,为何edit box不能识别txt中的换行?
txt文档中的换行到edit box 中不会被识别,而是继续在同一行显示下去,直到写不下才换行,这样的话和txt的显示就有差异。
已经将edit box的properties设置为Multiline 和 Vertical scroll;

以下是相关部分的代码:

C/C++ code

void CLexicalDlg::open() 
{
    // TODO: Add your control notification handler code here
    char ch[1000];
    int i=0,j=0;
    ifstream infile;
    CFileDialog * filedialog;
    CEdit * edt=(CEdit *)GetDlgItem(IDC_EDIT1);
    filedialog = new CFileDialog(true,"bak");
    CString str;
    if (filedialog->DoModal()==IDOK ){            //显示打开对话框
                
        str = filedialog->GetFileName();        //读取用户选择的文件        
        infile.open (str);
        if (!infile){
            MessageBox("文件打开错误","错误");
        }
    }
    while(infile.get(ch[i]))
        i++;
    for(j=i;j<1000;j++)
        ch[j]=NULL;
    
    
    str=ch;
    edt->SetWindowText(str);
}



------解决方案--------------------
那你就用CStdioFile一行的读,然后自己加上_T("\r\n"),累加得到所有的内容;最后一次性写入EDIT中
------解决方案--------------------
判断一下, 把换行符改成"\r\n" 即可, 如下
C/C++ code

void CLexicalDlg::open() 
{
    // TODO: Add your control notification handler code here
    char ch[1000];
    int i=0,j=0;
    ifstream infile;
    CFileDialog * filedialog;
    CEdit * edt=(CEdit *)GetDlgItem(IDC_EDIT1);
    filedialog = new CFileDialog(true,"bak");
    CString str;
    if (filedialog->DoModal()==IDOK ){            //显示打开对话框
                
        str = filedialog->GetFileName();        //读取用户选择的文件        
        infile.open (str);
        if (!infile){
            MessageBox("文件打开错误","错误");
        }
    }
    while(infile.get(ch[i]))
         {
        if(ch[i]=='\n')
        {
            ch[i]='\r';
            ch[++i]='\n';
            i++;
            continue;
        }
        
        i++;
    }
    for(j=i;j<1000;j++)
        ch[j]=NULL;
    
    
    str=ch;
    edt->SetWindowText(str);
}