怎样将.txt文本文件中的内容(包括汉字)读入到wchar_t类型的数组中?

解决方案 »

  1.   

    1、fgets();然后char转wchar_t
    2、用CString,CFile,然后wcscpy();
      

  2.   

    可参考:
    FILE* fp=fopen("路径+文件名.txt","a+");
    char buf[大小自定] = {0};//定义缓存区
    for(int j=0;j<文本行数;j++)
    {
    fgets(buf,1024,fp); //读取一整行 
    把char类型的buf转换为wchar_t类型存起来(略)
      

  3.   

    个人觉得最简单的不是cfile是那个cstudiofile,下面是我修改阿帕奇配置文件的端口的代码CString confpath=g_CurrentDirectoryPath.Left(g_CurrentDirectoryPath.GetLength()-3)+_T("apache\\conf\\httpd.conf");
    CStdioFile httpconf;
    bool bret=httpconf.Open(confpath,CStdioFile::modeRead);
    //WriteLogAlways1(_T("C:\\logprint.txt"),_T("httpconf Open: ")+confpath);

    if (bret)
    {
    CString   strLine;    
    CStdioFile temp;
    if(!temp.Open(confpath+_T(".tmp"),CFile::modeCreate | CFile::modeReadWrite))
    {

    int iii=GetLastError();
    CString aaa;
    aaa.Format(_T("%d"),iii);
    AfxMessageBox(_T("Error:")+aaa);
    }
    while(httpconf.ReadString(strLine)) 
    {     
    int i=strLine.Find(_T("Listen"));
    if (i==0)
    {

    temp.WriteString(_T("Listen ")+setport);
    temp.Write(_T("\n"),1);
    }
    else
    {
    //WriteLogAlways1(_T("C:\\logprint.txt"),_T("temp write: ")+strLine);
    //AfxMessageBox(_T("temp write: ")+strLine);
    temp.WriteString(strLine);
    temp.Write(_T("\n"),1);
    }
    }   
    temp.Close();
    httpconf.Close();
    DeleteFile(confpath);
    CopyFile(confpath+_T(".tmp"),confpath,FALSE);
    DeleteFile(confpath+_T(".tmp"));
      

  4.   

    CFile和CStdiofile自己百度下,全是讲解怎么使用的。