zoukankan      html  css  js  c++  java
  • 读取文件内容时,显示的内容明显少于文本长度

    最近在读取html文件的内容时,遇到问题:

    数据的长度明明很大,但读取的char*数据只显示几个字节,转换为wstring后,也是只显示几个字节。

    在研究内存之后,发现是因为数据中存在 字符,char*,CString等在遇到 时就会丢弃后面的数据。

    //读取文件内容:

    HANDLE hFile = CreateFile(szFilePath,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
    if (hFile == INVALID_HANDLE_VALUE)
    {
    LOG_ERROR(L"判断简历文件:读取文件内容出错(%d)", GetLastError());
    return false;
    }
    DWORD dwFileSize = GetFileSize(hFile,0);
    char* buffer = new char[dwFileSize];
    ::SetFilePointer(hFile,0, NULL, FILE_BEGIN);
    DWORD dwRead = 0;
    BOOL filesucc=::ReadFile(hFile,buffer,dwFileSize, &dwRead, NULL);
    if(filesucc==0)
    {
    LOG_ERROR(L"判断简历文件:读取文件内容出错(%d)", GetLastError());
    return false;
    }
    CloseHandle(hFile);

    char * pchar = replaceAll(buffer, '', ' ', rtnLength );//CString assign等遇到会丢弃后面的数据

    replaceAll定义如下:

    char * replaceAll(char * src,char oldChar,char newChar, int length)
    {
    char * head=src;
    int i = 0;
    while(i < length/**src!=''*/)
    {
    if(*src==oldChar)
    *src=newChar;
    src++;
    i ++;
    }
    return head;
    }

  • 相关阅读:
    NYOJ 35
    TOJ 3072
    HDU 1075
    POJ 1028
    TOJ 1153
    TOJ 1036
    POJ 1521
    POJ 3253
    NYOJ 467
    HDU 1671
  • 原文地址:https://www.cnblogs.com/pjl1119/p/6906661.html
Copyright © 2011-2022 走看看