在C++程序开发中,也会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C++有几种创建,读取,更新和删除文件的方法。本文主要介绍C++ File文件处理 读文件。

1、读取文件

要从文件读取,可以使用ifstreamfstream 类以及文件名。

请注意,我们还将while循环与getline()函数(属于ifstream该类)一起使用,以逐行读取文件并打印文件内容:

// 创建一个文本字符串,用于输出文本文件
string myText;
// 从文本文件读取
ifstream MyReadFile("filename.txt");
// 使用while循环和getline()函数逐行读取文件
while (getline (MyReadFile, myText)) {
  // 输出文件中的文本
  cout << myText;
}
// 关闭文件
MyReadFile.close();

注意close()关闭文件可以清理不必要的内存空间。

文件写入还有其它函数,可以参考下面的文档,

相关函数C++ File文件处理相关函数

2、获取文件信息

要获取有关文件的更多信息,可以使用int fstat(int fildes, struct stat *buf);函数。

stat文件信息结构体:

struct stat {
dev_t st_dev; /* device */
ino_t st_ino; /* inode */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device type (if inode device) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for filesystem I/O */
blkcnt_t st_blocks; /* number of blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last change */
};

例如,

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
int main ( int argc, char *argv[])
{
    struct stat FileAttrib;

    if (stat("/etc/passwd", &FileAttrib) < 0)
        printf("File Error Message = %s\n", strerror(errno));
    else
        printf( "Permissions: %d\n", FileAttrib.st_mode );
    return 0;
}

推荐文档