C++ 读取一个文件

// 获取文件大小
long getFileSize(const char * const & filePath) {

    FILE *fp = fopen(filePath, "rb");

    if (fp == nullptr) {
        return -1;
    }

    fseek(fp, 0, SEEK_END);

    long fileSize = ftell(fp);

    fclose(fp);

    return fileSize;
}

int main() {

    const char *filePath = "log.txt";
    int size = getFileSize(filePath);

    // 不要在栈上申请空间,否则可能会导致栈溢出!
    char *buf = new char[size];
    memset(buf, 0, size);

    fstream  file;
    file.open(filePath, ios::binary|ios::in);
    if(!file.is_open()){
        std::cout<<"open fail"<<std::endl;
        return 0;
    }

    file.read(buf, size);
    cout<<buf<<endl;
    delete[] buf;

   file.close();

    return 0;
}
  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容