gpt4 book ai didi

c++ - 将 std::ifstream 读入线 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:09 26 4
gpt4 key购买 nike

我该如何读取每行都是一个数字的文件,然后将该数字输出到一个多行 vector 中?

例如:file.txt 包含:

314
159
265
123
456

我试过这个实现:

vector<int> ifstream_lines(ifstream& fs) {
vector<int> out;
int temp;
getline(fs,temp);
while (!fs.eof()) {
out.push_back(temp);
getline(fs,temp);
}
fs.seekg(0,ios::beg);
fs.clear();
return out;
}

但是当我尝试编译时,出现如下错误:

error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline
(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' :
could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ifstream'

所以,很明显,出了点问题。有没有比我正在尝试的更优雅的解决方案? (假设像 Boost 这样的第三方库不可用)

谢谢!

最佳答案

我怀疑你想要这样的东西:

#include <vector>
#include <fstream>
#include <iterator>

std::vector<int> out;

std::ifstream fs("file.txt");

std::copy(
std::istream_iterator<int>(fs),
std::istream_iterator<int>(),
std::back_inserter(out));

关于c++ - 将 std::ifstream 读入线 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1675508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com