矢量问题,可能有点小手?

时间:2017-12-03 18:35:53

标签: c++ vector

我正在尝试创建一个程序来读取文本文件中的内容,然后在向量中的两个元素之间交换位置。

文本文件具有以下顺序:NAME,SURNAME,REGISTRATION,_NUMBER和CITY_ADRESS。

该名单约有100人。我想知道是否有办法不包括整条线并将其结束在一个空间中。

以下是我的代码的样子!

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

using namespace std;

int main() {
  vector<string> line;
  string information;
  ifstream myfile ("Namn.txt");
  if (myfile.is_open()) {
    while (getline(myfile, information)) {
      line.push_back (information);
    }
    myfile.close();
  }else cout << "Filen gick inte att öppna!";

  for (unsigned int i = 0;  i < line.size(); i++) {
    cout << line[i] << endl;
  }
  return 0;
}

1 个答案:

答案 0 :(得分:1)

您可以使用fstream读取文件并同时解析,然后将信息的所有元素放在向量向量中,然后您可以随意混合和匹配信息,如下所示:

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

int main()
{
    std::string name;
    std::string surname;
    std::string registration;
    std::string location;
    std::vector<std::vector<std::string>> information;

    std::ifstream myfile("Namn.txt");

    while (myfile >> name >> surname >> registration >> location)
        information.push_back({name, surname, registration, location});

    // print

    for (auto const &info : information)
    {
        std::cout << info[1] << " " << info[0] << " " << info[2] << " " << info[3] << std::endl;
    }

    return 0;
}

打印:

Andersson Rune 12873645 Stockholm
Isaksson Peter 12873645 Uppsala
Gustavsson Fredrik 12873645 Gothenborg