我有一个特殊文件,里面有乱码,我需要将他读入,但遇到乱码的地方用CStdioFile file读不过去了
始终读出的为"",请大家帮忙看看,谢谢
//文件为:
61.144.115.45          
222.135.6.116          
218.20.118.147         
218.246.32.224         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC%u0aeb%ub890%udacf%u77ee%u0000%u0000%u838b%u0094%u0000%u408b%u0564%u0150%u0000%ue0ff%u9090=x&悙悙悙悙悙悙悙悙悙悙悙悙悙悙悙悙?悙恄?悙愯?峯饙}-悙悑鱢窰3蒮嬋礄2莫恸$鞜櫃e狿(?絢7_辠檘敐櫃q潤檘讻櫃跍櫃q葲櫃q綒櫃逌櫃q'槞?譁櫃逌櫃q鏇櫃覝櫃q菣櫃q櫃?a欗y覝櫃蒮
敓櫃逌櫃蒮 敓櫃稖櫃蒮 湙?櫃蒮 湙?櫃櫃?譁櫃蒮 \湙?櫃櫃蒮 O湙橺覝櫃髾髝殬櫃?覝櫃蒮 殶櫃Z敁勿鼢碡祉鲐眄蚬汐摂擇 櫃檉 &湙?稖櫃q_櫃?af?/櫃?a欗? 髾櫃神櫇櫃跍櫃?稖櫃蒮 /湙?a櫀櫃欝?櫃?跍櫃?覝櫃蒮 殶櫃af睚 r髾駲潤?跍櫃?覝櫃蒮 憻櫃a欗? af憩 狟?櫃噬跍櫃?櫃蒮 5湙?a欗? p瞗ff猋裐猋Z狟?經櫃湿B适噬f 湙?a欗? 經櫃Z!ffffZ櫃櫃跍櫃^欇櫃櫳f 櫃跍櫃獪櫃谫讠疁櫃凇!槝櫃诘适猋缮少裳缮鞜櫃瑟Y蒮 顪櫃獪櫃蒮 湙?疁櫃蒮 湙?跍櫃橺駲潤欝賔 9湙橺猋?w洐橿檿櫃櫳獪櫃?稖櫃蒮 艤櫃猋?w洐櫳櫃?疁櫃蒮 艤櫃Z櫃櫃櫃櫃槞櫃?笟櫃^殙櫃櫴蹪櫃噬f e湙?Aa櫫錏ZZ墮櫃髪鰵櫃蒮 綗櫃鰵櫃蒮 櫃a欗? 闀ge4a欗? 櫏擁i韚?韖Zn4橺櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃跍櫃审沠 €煓欝欝橌沠 p湙?af?櫃?逌櫃櫃^殬櫃欝澥鬂駀f櫃蒮 櫃a欖? 鰺櫃轁櫃锜櫃邼櫃af鞏 q砯ff邼櫃逌櫃髩蹪櫃噬f i湙?a欖? 鬁逌櫃蒮 l湙?a欖? 逌櫃Z猋Z洐欪櫃櫃櫃櫃櫃櫃!櫃h?≡?欗? 裷hA辚歫镝歫绻歜讔狵衔?b,翢櫃狿(瀓>頃 榔^澺{F榔?S呓歓Hx歑狿?邊歓Xx洑X櫄Z驘櫃Z覠櫃q蓹櫃櫃Z$蕼櫃^蝢稒櫃粕玒狿nHek7?韼 晌Fq剻櫃?灹揶揶r@?霺Z?櫃蒮娐Z?$驘櫃噬f幤Z櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃櫃臆俗苷欄朦痖鼨撄硎眸腠扉绪鲐欄朦膂觋貦邗鲫鼨牲坐酎痖鼨搋鳆仵貊鷻坞痦瘐鼨它唣觞櫴觞櫷麴鼬睃呻鳅隀茚痦婉朦櫃问欔鳅螯頇鼾欟痍睃鳈轫欔龣朦欪貊挈牿櫸守薯盱闄眈鲫眵鼨眈鲫睇圜鼨挈黻鳅蝣轫櫃櫿鲽瘥滕豚貦撄砩膂朦觋欔?瞑?顧鶮?羉md.exe$ HTTP/1.1" 404 272
219.237.127.3          
202.96.18.194          
219.235.229.147        
220.207.81.220         
[END]

解决方案 »

  1.   


        先读其ASCII,然后再作处理!
      

  2.   

    为什么用CStdioFile?是不是用里面的readstring了?
      

  3.   

    正是用了readstring了我的代码:void CQuestionDlg::OnButtonRead() 
    {
    // TODO: Add your control notification handler code here
    CStdioFile file;
    CString str,str1;
    int nRows = 0;
    int bIsOpenOK = file.Open("error.txt",CFile::modeRead); if (!bIsOpenOK)
    {
    AfxMessageBox("选择文件失败! ");
    return ;
    }
    while (1)
    {
    //先从文件中读入1行
    nRows++;
    file.ReadString(str);
    str1.Format("%d",nRows);
    TRACE( str+ str1);
    TRACE("\n");
    if (str == "[END]")//整个文件的结束标识,我认为自定义[end]比较可靠
    {
    TRACE("--------------[end]----------------  \n");
    break;
    }

    }
    str.Format("读入 %d 行 \n",nRows);
    TRACE(str);
    file.Close();
    }
      

  4.   

    ReadString读到 0D0A算一行。
    你用UltraEdit看看你的文件。
    如果文件的乱码是定长的,用Read直接读比较好。
      

  5.   

    换成
    CFile textfile(strFilename,CFile::modeRead);
    CArchive ar_text(&textfile,CArchive::load);
    bFileEnd = ar_text.ReadString(str);
    试试