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;
}