我正在尝试创建一个程序来读取文本文件中的内容,然后在向量中的两个元素之间交换位置。
文本文件具有以下顺序: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;
}
答案 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