c ++从文件中逐个获取值

时间:2013-11-16 21:43:28

标签: c++ ifstream

我知道这种问题多次出现stackoverflow但是我无法找到一个很好的答案。我试图找出如何从c ++中的文件中逐个获取值。让我解释一下:

test.txt

1 1 0.5
31 5 14

我想在我的向量或数组中存储1,1,0.5并对其进行一些处理,然后获取第二行并再次进行相同的操作。有人帮我吗?提前谢谢。

2 个答案:

答案 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());
}