心软的饺子 · Linux 上最好的 9 ...· 昨天 · |
稳重的哑铃 · Linux中运行SpringBoot项目(j ...· 2 天前 · |
独立的柚子 · c++如何删除/替换文件的最后一行? - ...· 3 天前 · |
风流倜傥的凳子 · 使用vba代码获取linux服务器上的图片到 ...· 3 天前 · |
飘逸的四季豆 · 你所不知道的 Linux 定时任务 | ...· 1 周前 · |
气势凌人的大葱 · [@types/babel__travers ...· 3 月前 · |
千杯不醉的牙膏 · 苹果 A11 ...· 4 月前 · |
慷慨大方的红酒 · 习近平在塞尔维亚媒体发表署名文章· 5 月前 · |
谈吐大方的弓箭 · LUA调试环境(一)_lua ...· 7 月前 · |
任性的枇杷 · Issue 29209: Remove ...· 1 年前 · |
独立的柚子
3 天前 |
在C++中删除或替换文件的最后一行涉及到几个步骤,主要是读取文件内容,找到最后一行,然后根据需要进行修改。这里我将提供一个简单的示例,展示如何删除文件的最后一行。如果你想替换最后一行,可以在写回文件之前修改这一行的内容。
首先,你需要读取整个文件并将每一行存储到一个字符串向量中。这样可以方便地访问和修改任何特定的行。
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int main() {
std::string filePath = "example.txt";
std::ifstream file(filePath);
std::vector<std::string> lines;
std::string line;
if (file.is_open()) {
while (getline(file, line)) {
lines.push_back(line);
file.close();
} else {
std::cerr << "Unable to open file\n";
return 1;
// 检查是否至少有一行
if (!lines.empty()) {
lines.pop_back(); // 删除最后一行
// 重新写入文件,不包括最后一行
std::ofstream outFile(filePath);
if (outFile.is_open()) {
for (const auto& l : lines) {
outFile << l << "\n";
outFile.close();
} else {
std::cerr << "Unable to open file for writing\n";
return 1;
return 0;
}
如果你想替换最后一行而不是删除它,你可以在调用
pop_back()
之前修改
lines
向量的最后一个元素。例如,如果你想将最后一行替换为
"This is the new last line"
,你可以这样做:
if (!lines.empty()) {
lines.back() = "This is the new last line"; // 替换最后一行
}
然后,剩下的写回文件的代码保持不变。
飘逸的四季豆 · 你所不知道的 Linux 定时任务 | GoHalo 1 周前 |
气势凌人的大葱 · [@types/babel__traverse] Type Expected issue with @types/babel__traverse package · Issue #65766 · De 3 月前 |
慷慨大方的红酒 · 习近平在塞尔维亚媒体发表署名文章 5 月前 |