我遇到了一個問題,我收到了一個文件,其中包含不同的城市和道路,我做了一個名爲Ville(法語城市)的課程和一個名爲Route(Road in French)的課程,需要把我所有的威樂到市政廳和我的所有路線的載體導入路線的vectof從字符串中創建對象(C++)
威樂構造函數被調用那樣:
Ville *myCity = new Ville("myCity");
和道路構造:
Route *myRoad = new Road("myRoad",400, 130, myCity1, myCity2);
參數a重新命名道路名稱,大小,最高速度以及與道路相連的兩個城市。
文件的樣子:
< ville>
Paris
Berlin
...
< /ville>
< route>
A0 400 130 Paris Berlin
...
</route>
我這樣做了數據提取:
std::string element;
int statut = 0;
while(fichier >> element)
{
if(element == "</ville>" || element == "</route>")
{
statut = 0;
fichier >> element;
}
if(element == "<ville>" || statut == 1)
{
if(statut == 0)
{
fichier >> element;
}
cout << "Ville: " << element << endl;
statut = 1;
}
if(element == "<route>" || statut == 2)
{
if(statut == 0)
{
fichier >> element;
}
cout << "Route: " << element;
fichier >> element;
cout << " Taille: " << element;
statut = 1;
fichier >> element;
cout << " Speed: " << element;
fichier >> element;
cout << " Relie: " << element;
fichier >> element;
cout << " à " << element <<endl;
statut = 2;
}
}
}
else
{
cout << "Error: Can't open the file" << endl;
}
我在尋找,讓我這樣做的方法:
Ville *element = new Ville (element);
或者我應該改變提取數據的方式,以便輕鬆轉換爲對象嗎?
我不明白這個問題。如果你可以做'新Ville(「myCity」)','element'是一個字符串,你只需要'new Ville(element.c_str())'? – Barry
你在尋找XML解析器嗎? http://stackoverflow.com/questions/9387610/what-xml-parser-should-i-use-in-c或http://lars.ruoff.free.fr/xmlcpp/ btw。糾正你的最後一行 - 你使用元素的兩個不同的東西 – Palo
我是按目的做的,我期待這樣做,因爲可變城市將具有與城市本身相同的名稱。 – mel