VS2019 C语言 通过 filesystem 函数对.txt文件删除行数据怎么操作,用代码说明
时间: 2024-10-22 21:16:43 浏览: 32
在linux下ubuntu的五子棋游戏c语言代码(20220212161732).pdf
5星 · 资源好评率100%
在Visual Studio 2019中使用C语言并通过`filesystem`库(实际上这是一个C++17引入的新特性,而不是C标准库的一部分,VS 2019默认情况下可能并不支持它)来删除`.txt`文件中的特定行,你需要先包含对应的头文件,并确保你的程序能够链接到支持这个库的编译设置。以下是一个简单的示例,假设我们有一个名为`std::ifstream`和`std::ofstream`的头文件支持,用于读取和写入文件:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <filesystem>
namespace fs = std::filesystem;
void deleteLineFromFile(const std::string& filePath, const std::string& lineToKeep) {
// 检查文件是否存在
if (!fs::exists(filePath)) {
std::cerr << "File does not exist!" << std::endl;
return;
}
// 打开文件为追加模式(如果不存在则创建)
std::ifstream inputFile(filePath, std::ios::in);
if (!inputFile.is_open()) {
std::cerr << "Failed to open the file." << std::endl;
return;
}
std::ofstream outputFile(filePath, std::ios::out | std::ios::trunc); // truncate instead of append
std::string line;
while (std::getline(inputFile, line)) {
// 如果不是目标行,写入新文件
if (line != lineToKeep) {
outputFile << line << "\n";
}
}
// 关闭文件
inputFile.close();
outputFile.close();
if (outputFile.is_open()) {
std::cout << "Successfully deleted lines and saved the updated file.\n";
} else {
std::cerr << "Error closing output file after deletion.\n";
}
}
int main() {
// 调用函数并提供文件路径和要保留的行
deleteLineFromFile("example.txt", "Target Line to Keep");
//
阅读全文