📌  相关文章
📜  std::ifstream 以字节为单位获取文件的大小 (1)

📅  最后修改于: 2023-12-03 15:05:22.254000             🧑  作者: Mango

以std::ifstream以字节为单位获取文件的大小

当我们需要读取文件时,通常需要知道文件的大小。可以使用std::ifstream类来打开文件并获取其大小。以下是如何使用std::ifstream以字节为单位获取文件的大小的代码示例。

#include <iostream>
#include <fstream>

int main()
{
    std::ifstream file("example.txt", std::ios::binary | std::ios::ate);
    if (!file.is_open())
    {
        std::cerr << "Failed to open file." << std::endl;
        return 1;
    }

    std::streampos fileSize = file.tellg();
    file.seekg(0, std::ios::beg);

    std::cout << "File size: " << fileSize << " bytes." << std::endl;

    file.close();

    return 0;
}

首先,使用std::ifstream类打开文件。

std::ifstream file("example.txt", std::ios::binary | std::ios::ate);

在这一行中,std::ios::binary是用于标识文件以二进制模式打开。std::ios::ate用于将文件指针移动到文件末尾,因此我们可以在文件中使用tellg获取文件大小。

std::streampos fileSize = file.tellg();

这将返回文件流指针的当前位置,也就是文件的大小。

接下来,将文件指针移回文件的开头。

file.seekg(0, std::ios::beg);

最后,输出文件大小并关闭文件。

std::cout << "File size: " << fileSize << " bytes." << std::endl;
file.close();

这是一个简单而有效的方法来获取以字节为单位的文件大小。

以上所有代码片段将返回markdown格式。