ifstream   in(_T("EastCompensation.txt"));   
string   s;   
while(getline(in,s));
in.close();
CString cstr;
cstr.Format(_T("%s"),s);
MessageBox(cstr);

解决方案 »

  1.   

    第一:你应该在输出前检查s的内容,别人是不可能知道你读到什么的
    第二:Format之类的函数应该不可以使用string作为参数,他只支持简单类型,如果你要用Format,s需要改成s.c_str()
      

  2.   

    乱码,你的文件是什么编码,ANSI还是UNICODE,你现在是以UNICODE方式显示,你应该进行一次转换
      

  3.   

    cstr.Format(_T("%s"),s);
    ->cstr.Format(_T("%s"),s.c_str());
      

  4.   

    TXT文件内容如下
    123456
    -456945
    789654
    ……
    MessageBox依然是乱码
      

  5.   

    ifstream   in(_T("WestPosition.txt"));   
     string   s; 
     if(in.getline((char *)s.c_str(),15))
     {
     
     CString cstr;
     cstr=s.c_str();
     MessageBox(cstr); 
     in.close();
     }
     else
     MessageBox(_T("open failed!"));
    这样试了一下,居然可以了,虽然不知道原因。说明一下我的运行平台是vs2008模拟器windows mobile 5.0 packet pc
      

  6.   

    首先trace下,看看到底是什么内容,同时按照楼上某高兄所说的
    cstr.Format(_T("%s"),s); 
    ->cstr.Format(_T("%s"),s.c_str());
    重点是字符宽度,要搞清楚。