运行环境是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函数获取一整行数据,然后对字符串进行分割。