C++文件操作的方法

C++文件操作的方法包括以下几种:

  1. 打开文件:使用fstream类中的open()方法打开文件,并返回一个文件对象,可以用于后续的读写操作。

c++Copy code#include
std::fstream file;
file.open("filename.txt", std::ios::in | std::ios::out | std::ios::app);
  1. 读取文件:使用fstream类中的>>运算符或getline()方法读取文件中的内容,并存储到变量中。

c++Copy codestd::string line;
while (std::getline(file, line)) {
    std::cout << line << std::endl;
}
  1. 写入文件:使用fstream类中的<<运算符将数据写入文件中。需要注意的是,<<运算符只能写入基本数据类型,如果要写入字符串,需要使用write()方法。

c++Copy codefile << "Hello, world!" << std::endl;
  1. 关闭文件:使用fstream类中的close()方法关闭文件,释放资源。

c++Copy codefile.close();
  1. 移动文件指针:使用fstream类中的seekg()和seekp()方法移动文件指针,可以实现读写位置的变化。

c++Copy codefile.seekg(0, std::ios::beg); // 移动到文件开头
file.seekp(0, std::ios::end); // 移动到文件结尾
  1. 判断文件是否存在:使用fstream类中的is_open()方法判断文件是否存在。

c++Copy codeif (file.is_open()) {
    // 文件存在
}
  1. 创建文件夹:使用mkdir()方法创建文件夹。

c++Copy code#include
std::string folder_name = "folder";
mkdir(folder_name.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
  1. 删除文件或文件夹:使用remove()方法删除文件,使用rmdir()方法删除空文件夹,使用boost库中的filesystem类中的remove_all()方法删除非空文件夹。

c++Copy code#include#include#include
std::string filename = "file.txt";
std::string folder_name = "folder";
if (std::remove(filename.c_str()) != 0) {
    std::perror("Error deleting file");
}
if (std::rmdir(folder_name.c_str()) != 0) {
    std::perror("Error deleting folder");
}
#include
std::string folder_name = "folder";
boost::filesystem::remove_all(folder_name);
  1. 复制文件或文件夹:使用fstream类中的read()方法读取文件内容,使用write()方法将内容写入到另一个文件中。使用boost库中的filesystem类中的copy_file()方法复制文件,使用copy_directory()方法复制文件夹。

c++Copy codestd::ifstream src("file.txt", std::ios::binary);
std::ofstream dst("file_copy.txt", std::ios::binary);
dst << src.rdbuf();
#include
std::string src_path = "file.txt";
std::string dst_path = "file_copy.txt";
boost::filesystem::copy_file(src_path, dst_path);
std::string src_folder = "folder";
std::string dst_folder = "folder_copy";
boost::filesystem::copy_directory(src_folder, dst_folder);

使用这些方法需要注意文件操作的权限问题,以及对文件的锁定等问题。

你可能感兴趣的:(C++,c++)