📅  最后修改于: 2023-12-03 15:05:22.254000             🧑  作者: Mango
当我们需要读取文件时,通常需要知道文件的大小。可以使用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格式。