我知道这种问题多次出现stackoverflow但是我无法找到一个很好的答案。我试图找出如何从c ++中的文件中逐个获取值。让我解释一下:
test.txt
1 1 0.5
31 5 14
我想在我的向量或数组中存储1,1,0.5并对其进行一些处理,然后获取第二行并再次进行相同的操作。有人帮我吗?提前谢谢。
答案 0 :(得分:1)
C ++实现这一目标的方法:
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
#include <iterator>
int main()
{
std::string line;
std::ifstream ifs("test.txt");
while ( std::getline( ifs, line ) ) {
std::istringstream is( line );
std::vector<double> numbers = std::vector<double>
( std::istream_iterator<double>(is),
std::istream_iterator<double>());
//... f(numbers);
// i.e:
// std::copy( numbers.begin(), numbers.end(),
// std::ostream_iterator<double>( std::cout, " "));
}
}
答案 1 :(得分:0)
您可以逐行读取文件到字符串,然后拆分字符串并将它们添加到矢量,如下所示:
std::string delimiter = " ";
vector <string> v;
std::string s = "1 1 0.5" // a line from file
size_t pos = 0;
std::string token;
while ((pos = s.find(delimiter)) != std::string::npos) {
token = s.substr(0, pos);
v.push_back(token);
s.erase(0, pos + delimiter.length());
}