我有200行,看起來像這樣的文本文件:重新排列線列在文本文件
1 4:48:08 Orvar Steingrimsson 1979 30 - 39 ara IS200
2 4:52:25 Gudni Pall Palsson 1987 18 - 29 ara IS870
我的代碼排序這些行每個選手,而不是因爲它在時間的出生年份上面的例子。所以,現在的行排序爲這樣的:(只多不少行)
2 4:52:25 Gudni Pall Palsson 1987 18 - 29 ara IS870
1 4:48:08 Orvar Steingrimsson 1979 30 - 39 ara IS200
我的問題是我怎麼能現在做上市的三件事情:年 - 名字 - 時間......所以,這兩個行會看像這樣:
1987 Gudni Pall Palsson 4:52:25
1979 Orvar Steingrimsson 4:48:08
我的代碼,到目前爲止,這種種按照正確的順序行:
#include <iostream> //for basic functions
#include <fstream> //for basic file operations
#include <string> //for string operations
#include <map> //for multimap functions
using namespace std;
int main()
{
ifstream in("laugavegurinn.txt", ios::in);
ofstream out("laugavegurinn2.txt");
string str;
multimap<int, string> datayear; //creates multimap linking each line to year
in.ignore(80);//ignores header of the file - 80 characters - to escape problems with while loop
// while (getline(in,str)) {
// string name = str.substr(18,30);
// string time = str.substr(8,7);
//}
while (getline(in,str)) {
int year = stoi(str.substr(54, 4));
datayear.insert(make_pair(year,str)); //insert function and pairs year and string
}
for (auto v : datayear)
out << v.second << "\n";
in.close();
out.close();
}
我不能創建變量下的名稱和時間,然後將它們添加到線:出<< v.first <<名字<<時間<<「\ n \; –
什麼應是第三個版本這個問題?首先是[這](http://stackoverflow.com/q/19055100/1870232)。我想知道這是一個[XY](http://meta.stackexchange.com/q/66377/ 232397)問題? – P0W
如果所有行按相同順序排列,則可以使用#include stringstream獲取每個字符串的單個信息使用某些std :: vector構造對所有信息進行排列,然後您只需要打印我對你的問題是否正確? – Martin