21xrx.com
2025-03-24 18:20:04 Monday
文章检索 我的文章 写文章
C++如何获取文件大小
2023-06-28 08:24:57 深夜i     18     0
C++ 文件 大小 获取

在C++中获取文件大小,可以使用系统提供的函数或自行编写函数来实现。下面分别介绍这两种方式。

一、使用系统提供的函数:

有两个系统提供的函数可以获取文件大小,分别是_stat和_fstat。这两个函数都需要传入一个struct _stat类型的结构体指针,来存储文件的相关信息。

以_stat为例,以下是获取文件大小的代码:

#include <iostream>
#include <sys/stat.h>
using namespace std;
int main()
{
  struct _stat st;
  if (_stat("test.txt", &st) == 0)
  
    cout << "文件大小为:" << st.st_size << endl;
  
  else
  
    cout << "获取文件大小失败!" << endl;
  
  return 0;
}

其中,_stat的第一个参数是要获取大小的文件名,第二个参数是一个指向_stat结构体的指针,用于存储文件的相关信息。如果_stat返回0,说明获取文件信息成功,可以从st结构体中获取文件大小。

二、自行编写函数:

也可以自己编写函数来获取文件大小。以下是一个简单的例子:

#include <iostream>
#include <fstream>
using namespace std;
int getFileSize(string filename)
{
  ifstream file(filename, ios::binary | ios::ate);
  return file.tellg(); 
}
int main()
{
  string filename = "test.txt";
  int size = getFileSize(filename);
  if (size != -1)
  
    cout << "文件大小为:" << size << endl;
  
  else
  
    cout << "获取文件大小失败!" << endl;
  
  return 0;
}

这个例子中,我们使用了C++标准库中的ifstream类,打开文件并以二进制方式读取,使用tellg函数获取当前的读指针位置,即文件大小。

综上所述,无论是使用系统提供的函数还是自己编写函数,在C++中获取文件大小都是非常简单的。通过这些方法,我们可以方便地读取文件大小,以便更好地处理文件。

  
  

评论区