std::ifstream ifs(filename); std::string content((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));获取文本内容并删除最后一行
时间: 2024-01-20 21:03:10 浏览: 70
使用ifstream和getline读取文件内容[c++]
5星 · 资源好评率100%
如果你想获取 txt 文件的全部内容并删除最后一行,可以使用以下代码:
```c++
#include <fstream>
#include <string>
// ...
std::ifstream ifs("file.txt");
std::string content;
if (ifs.is_open()) {
std::string line;
while (std::getline(ifs, line)) {
if (!line.empty()) {
content += line + "\n";
}
}
ifs.close();
}
// 删除最后一行
auto pos = content.find_last_of('\n');
if (pos != std::string::npos) {
content = content.substr(0, pos + 1);
}
// 这里的 content 即为 txt 文件中除最后一行外的全部内容
```
这段代码的作用和前面的代码段类似,只不过在读取每一行时,只有当该行不为空时才将其添加到 `content` 字符串的末尾,并在每行末尾添加一个换行符,最终得到的 `content` 字符串即为 txt 文件中除最后一行外的全部内容。接着,使用 `std::string::find_last_of` 函数查找最后一个换行符的位置,然后使用 `std::string::substr` 函数删除最后一行的内容。
注意,这段代码中也需要包含头文件 `<fstream>` 和 `<string>`。
阅读全文