关于c++文件的读取并写入数组

运行环境是VC++ 6.0
在文件读取时写入数组时字符串显示为一堆数字,怎么解决
读取时的函数代码是
void read()
{
string temp;
int i=0;
ifstream fin;
fin.open("C:\airplane.txt");
if(!fin)
{
cout<<"fail to open"<<endl;
}
while(!fin.eof())
{
fin>>temp;
i++;

}
sum=i/3;
cout<<"一共有"<<sum+1<<"路线"<<endl;
fin.close();
fin.open("C:\airplane.txt");
s=new string[sum];
//cout<<s<<endl;
d=new string[sum];
//cout<<d<<endl;
k=new int[sum];
//cout<<k<<endl;
i=0;
while(!fin.eof())
{
fin>>s[i]>>d[i]>>k[i];
i++;
}
cout<<"路线图"<<endl;
for(i=0;i<sum;i++)
{
cout<<s[i]<<" "<<d[i]<<" "<<k[i]<<" "<<endl;

}
fin.close();
}
void city();
void input()
{
cout<<"请输入出发城市与目标城市: "<<endl;
cout<<"出发城市: "<<endl;
cin>>graph::src;
cout<<"目标城市: "<<endl;
cin>>graph::dec;

}
friend Tree;
private:
int sum,*k,max,nd;//线的条数城市的个数
string *s,*d,*temp,*temp2;//出发城市目标城市
};

文件内容为:
芝加哥 丹佛 1000
纽约 多伦多 500
纽约 丹佛 1800
多伦多 卡尔加里 1700
多伦多 洛杉矶 2500
多伦多 芝加哥 500
丹佛 乌尔班纳 1000
丹佛 休斯顿 1000
休斯顿 洛杉矶 1500
丹佛 洛杉矶 1000

fin>>s[i]>>d[i]>>k[i]; 发生了问题。
应该使用getline函数获取一整行数据,然后对字符串进行分割。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^