使用C++读取格式化文件

red*_*red 3 c++ file-io

我试图从文件中读取所有整数并将它们放入数组中.我有一个包含以下格式的整数的输入文件:

3 74

74 1

1 74

8 76
Run Code Online (Sandbox Code Playgroud)

基本上,每行包含一个数字,一个空格,然后是另一个数字.我知道在Java中我可以使用Scanner方法nextInt()忽略间距,但我在C++中找不到这样的函数.

Rei*_*ica 5

#include <fstream>
#include <iostream>
#include <vector>

int main()
{
  std::vector<int> arr;
  std::ifstream f("file.txt");
  int i;
  while (f >> i)
    arr.push_back(i);
}
Run Code Online (Sandbox Code Playgroud)

或者,使用标准算法:

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

int main()
{
  std::vector<int> arr;
  std::ifstream f("file.txt");
  std::copy(
    std::istream_iterator<int>(f)
    , std::istream_iterator<int>()
    , std::back_inserter(arr)
  );
}
Run Code Online (Sandbox Code Playgroud)