ubuntu

C++在Ubuntu上如何实现文件操作

小樊
44
2025-09-01 10:01:31
栏目: 编程语言

在Ubuntu上使用C++进行文件操作,你可以使用标准库中的<fstream>头文件提供的类和函数。以下是一些基本的文件操作示例:

  1. 包含头文件

    #include <fstream>
    #include <iostream>
    
  2. 写入文件

    void writeFile(const std::string& filename) {
        std::ofstream outFile(filename);
        if (!outFile.is_open()) {
            std::cerr << "Error opening file for writing!" << std::endl;
            return;
        }
        outFile << "Hello, World!" << std::endl;
        outFile.close();
    }
    
  3. 读取文件

    void readFile(const std::string& filename) {
        std::ifstream inFile(filename);
        if (!inFile.is_open()) {
            std::cerr << "Error opening file for reading!" << std::endl;
            return;
        }
        std::string line;
        while (std::getline(inFile, line)) {
            std::cout << line << std::endl;
        }
        inFile.close();
    }
    
  4. 追加到文件

    void appendToFile(const std::string& filename, const std::string& text) {
        std::ofstream outFile(filename, std::ios::app);
        if (!outFile.is_open()) {
            std::cerr << "Error opening file for appending!" << std::endl;
            return;
        }
        outFile << text << std::endl;
        outFile.close();
    }
    
  5. 检查文件是否存在

    bool fileExists(const std::string& filename) {
        std::ifstream inFile(filename);
        return inFile.good();
    }
    
  6. 删除文件

    void deleteFile(const std::string& filename) {
        if (std::remove(filename.c_str()) != 0) {
            std::cerr << "Error deleting the file!" << std::endl;
        }
    }
    
  7. 重命名文件

    void renameFile(const std::string& oldFilename, const std::string& newFilename) {
        if (std::rename(oldFilename.c_str(), newFilename.c_str()) != 0) {
            std::cerr << "Error renaming the file!" << std::endl;
        }
    }
    
  8. 获取文件大小

    std::streamsize getFileSize(const std::string& filename) {
        std::ifstream inFile(filename, std::ios::ate | std::ios::binary);
        if (!inFile.is_open()) {
            std::cerr << "Error opening file for getting size!" << std::endl;
            return -1;
        }
        return inFile.tellg();
    }
    

在Ubuntu上编译C++程序时,确保链接标准库,通常使用g++编译器:

g++ -o myprogram myprogram.cpp

然后运行生成的可执行文件:

./myprogram

请注意,这些示例假设你有足够的权限来执行文件操作。如果你没有权限,你可能需要使用sudo来运行程序或者以适当的用户身份登录。

0
看了该问题的人还看了