我开始写C++,并且试图读取格式如下的文本文件:

32.0      12.43
503.2     3.212

等等

在Java中,我可以将Scanner.nextFloat()结合使用,并将其中的内容放入Array中。我正在尝试使用C++实现相同的目的。怎么做?

最佳答案

从标准输入中读取

#include <iostream>

int main()
{
   float f1, f2, f3, f4;
   std::cin >> f1 >> f2 >> f3 >> f4;
}

从文件读取
#include <fstream>

int main()
{
   std::ifstream fin("file.txt"); //fin is an arbitrary identifier
   float f1, f2, f3, f4;
   fin >> f1;
   fin >> f2;
   fin >> f3;
   fin >> f4;  // or fin >> f1 >> f2 >> f3 >> f4; no difference
}

要将所有浮点数读取到浮点数数组( vector )中,可以使用以下命令:
#include <fstream>
#include <vector>
#include <iterator> //for istream_iterator and back_inserter
#include <algorithm> //for copy

int main()
{
    std::ifstream fin("input.txt");
    std::vector<float> v; //could also initialize with the two-iterator constructor
    std::copy(std::istream_iterator<float>(fin),
              std::istream_iterator<float>(),
              std::back_inserter(v)); //push_back into vector
}

阅读有关流输入/输出here和其他地方的更多信息。
我也强烈建议您阅读a good C++ book

关于java - C++是否等效于扫描程序的.nextFloat()方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9119989/

10-10 02:52