私のアルゴリズム クラスのプロジェクトでは、ディズニーランド マップのすべてのポイントを .txt ファイルから読み取り、プリム アルゴリズムを使用して MST 問題を解決するとします。
私の問題は、ファイルの値を ' ' 区切り文字を使用して一時配列に解析し、それらをリストにプッシュすることです。配列をリストにプッシュするまで、すべてがうまく機能しており、プログラムの後半で値を受け取ったときに値が返されません。私はそれがばかげていることを知っていますが、うまくいけば皆さんが助けてくれます.
私のコード: http://pastebin.com/rS6VJ6iJ
ディズニーランド.txt: http://pastebin.com/f78D0qrF
Output:
//testing arrays' value before pushing into list
id: 1 ,x: 957 ,y: 685 ,name: RailRoadMainStreet
id: 2 ,x: 1009 ,y: 593 ,name: MainStreetCinema
id: 3 ,x: 930 ,y: 661 ,name: FireEngine
id: 4 ,x: 991 ,y: 665 ,name: HorseDrawnStreetcars
id: 5 ,x: 945 ,y: 673 ,name: HorselessCarriage
id: 6 ,x: 1038 ,y: 668 ,name: Omnibus
id: 7 ,x: 1062 ,y: 670 ,name: DisneyGallery
id: 8 ,x: 1063 ,y: 649 ,name: GreatMomentsWithMrLincoln
id: 9 ,x: 969 ,y: 562 ,name: BlueRibbonBakery
id: 10 ,x: 968 ,y: 579 ,name: CarnationCafe
... to 84 id
//now retreving values from list after been pushed(empty)
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
id: ,x: ,y: ,name:
... to 84 id
これがばかげていることはわかっていますが、現時点では理解できません。
編集:
プログラムがファイルの最後に空白行を読み込んでいるため、今はおかしくなっています。 ����TomorrowlandTerrace��� ��ӿ��� ��
エラーの原因となっているコードの更新された部分:
if (data.is_open())
{
while (!data.eof())
{
getline(data,output);
if (counter == 0) //grabbing the total amount of vertcies
{
total = atoi(output.c_str());
}else if(counter == total+1){
//no nothing , blank line. THIS IS CAUSING ERRORS
}
else{ // now parsing line into an array then pushing it into the remaining list.
infoVert = new string[4];
temp = parseLine(infoVert,output,' ');
tmpVert.push_front(temp);
}
counter++;
}
}
//---------------------
//cleaning up the mess.
data.close();
delete [] infoVert;
//---------------------