c++20 按行读取文件
在C++20中,我们可以使用ranges库中的std::views::lines来按行读取文件。以下是一个示例代码:
#include <fstream>
#include <iostream>
#include <ranges>
int main() {
std::ifstream file("example.txt");
if (!file.is_open()) {
std::cerr << "Failed to open file" << std::endl;
return 1;
}
for (std::string_view line : std::ranges::istream_view<std::string>(file) | std::views::lines) {
std::cout << line << std::endl;
}
return 0;
}
在这个示例中,我们打开了一个名为example.txt的文件,并使用std::ranges::istream_view将其转换为输入流视图。然后,我们使用std::views::lines按行遍历该视图,并输出每行的内容。
需要注意的是,std::views::lines返回的是一个视图,而不是一个容器。因此,在使用时需要注意不要对其进行修改操作。
原文地址: https://www.cveoy.top/t/topic/sFF 著作权归作者所有。请勿转载和采集!