使用 C ifstream 从文本文件读取整数
在以下情况下从文本文件检索图邻接信息并将其存储到向量中会带来挑战处理可变整数计数的行。这是使用 C 的 ifstream 的综合解决方案:
传统方法包括使用 getline() 读取每一行并使用输入字符串流来解析该行。此技术对于整数数量一致的行非常有效。
#include
#include
#include
std::ifstream infile("text_file.txt");
std::string line;
while (std::getline(infile, line)) {
std::istringstream iss(line);
int n;
std::vector v;
while (iss >> n) {
v.push_back(n);
}
// Process the vector v
}
但是,如果您的行具有不同的整数计数,则有一个利用循环和“stay”习惯用法的单行解决方案,由 Luc Danton 提供:
#include
#include
#include
int main() {
std::vector<:vector>> vv;
for (std::string line;
std::getline(std::cin, line);
vv.push_back(std::vector(std::istream_iterator(std::move(std::istringstream(line))),
std::istream_iterator()))
);
// Process the vector of vectors vv
}
在此代码片段中,“stay”习惯用法确保提供的左值引用在移动后仍然有效。为了提高效率,这一移动是必要的,因为它避免了不必要的字符复制。
这些解决方案提供了高效且通用的方法,用于从文本文件中提取整数并将其存储在向量中,无论行是否具有一致或一致的字符。不同数量的整数。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3