QT中文件读写操作的问题

lcw0622 2012-01-03 01:53:39
QFile *arc=new QFile("d:\\arc.txt");
arc->open(QIODevice::ReadWrite|QIODevice::Text);
QTextStream in(arc);
QTextStream out(arc);
edge **matrix;

QString number;
int startTime[2];
int arriveTime[2];
int startCity;
int arriveCity;
int price;

int i,j,k=8;
in<<k<<endl;
for(i=0;i<8;i++)
in<<"1111"<<" "<<i<<" "<<i+1<<" "<<i+2<<" "<<i+3<<" "<<1<<" "<<2<<" "<<10<<"\n";
cout<<k;
out>>k;//在用in写入后用out读出第一个数据
for(i=0;i<8;i++)
{
out>>number>>startTime[0]>>startTime[1]>>arriveTime[0]>>arriveTime[1]>>startCity>>arriveCity>>price;
cout<<number.toStdString()<<" "<<startTime[0]<<" "<<startTime[1]<<" "<<arriveTime[0]<<" "<<arriveTime[1]<<" "<<startCity<<" "<<arriveCity<<" "<<price<<endl;
}


return 0;

这样写生成的文件内容就没有格式,不是我想象中的一行一行的样子。而如果这样写
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QFile *arc=new QFile("d:\\arc.txt");
arc->open(QIODevice::ReadWrite|QIODevice::Text);
QTextStream in(arc);
QTextStream out(arc);
edge **matrix;

QString number;
int startTime[2];
int arriveTime[2];
int startCity;
int arriveCity;
int price;

int i,j,k=8;
in<<k<<endl;
for(i=0;i<8;i++)
in<<"1111"<<" "<<i<<" "<<i+1<<" "<<i+2<<" "<<i+3<<" "<<1<<" "<<2<<" "<<10<<"\n";
arc->close(); //close一次后再打开
arc->open(QIODevice::ReadOnly);
out>>k;
for(i=0;i<8;i++)
{
out>>number>>startTime[0]>>startTime[1]>>arriveTime[0]>>arriveTime[1]>>startCity>>arriveCity>>price;
cout<<number.toStdString()<<" "<<startTime[0]<<" "<<startTime[1]<<" "<<arriveTime[0]<<" "<<arriveTime[1]<<" "<<startCity<<" "<<arriveCity<<" "<<price<<endl;
}

cout<<k;
return 0;
}

就是在写入完后再打开就没没问题,出来的文件也就是一行一行的,不知道为什么。。。
顺便谁能说下这个close到底能干什么,过去我不close程序一样也用的好好的。
...全文
87 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
j_qinshou 2012-01-04
  • 打赏
  • 举报
回复
应该不是close的问题吧 out<<"\r\n";

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧