1、读取文件
要从文件读取,可以使用ifstream
或fstream
类以及文件名。
请注意,我们还将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; }