关于qt写入文本文件换行的问题,求解惑

runner_wang 2015-07-07 04:30:29
代码如下,很简单
我想要的输出是这样:(点表示空格)
0..0..1..2..
1..0..1..2..
2..0..1..2..
但实际输出是这样的:
0..0..1..2..
..1..0..1..2..
..2..0..1..2..
..
除了第一行以外,每行开头会出现两个空格,且会多出一行,有两个空格,
实在不知道什么原因,求解答。
谢谢。


int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile data("output.txt");
int i,j;
if(data.open(QIODevice::Text|QFile::WriteOnly|QIODevice::Truncate)){
QTextStream out(&data);
out<<qSetFieldWidth(3)<<left;
for(i=0;i<3;i++)
{ out<<i;
for(j=0;j<3;j++)
{
out<<j;
}
out<<'\n';
}
}
return a.exec();
}
...全文
5811 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xm519803248 2016-03-04
  • 打赏
  • 举报
回复
file.open(QIODevice::WriteOnly|QIODevice::Text | |QIODevice::APPEND)
qq_27333813 2015-07-23
  • 打赏
  • 举报
回复
请教一下,我也是类似的问题: QFile file("C:\\Users\\Soft\\Desktop\\ListText\\123.txt"); if(!file.open(QIODevice::WriteOnly|QIODevice::Text)) { return; } for(int i = 0;i<36;i++) { strText[i] = ui->tableWidget->item(i,0)->text(); QTextStream in(&file); in<<strText[i]<<"\n";} 在QTableWidget双击修改后保存到文件,结果文件就保存成这样了 12 12 23 12 12 求高手解答,文件原来是每行一个12,修改了第三行的12为23,然后就显示成这样了,为什么呢
louis_liux 2015-07-18
  • 打赏
  • 举报
回复
恭喜,恭喜,刚刚看到这个问题
现在ing 2015-07-13
  • 打赏
  • 举报
回复
runner_wang 2015-07-07
  • 打赏
  • 举报
回复
已经找到原因了,最后输出的‘\n’,在设定宽度为3后,输出到文本文件的结果就是先换行再加上两个空格。 修改后的代码如下:
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile data("output.txt");
    int i,j;
    if(data.open(QIODevice::Text|QFile::WriteOnly|QIODevice::Truncate)){
        QTextStream out(&data);
             for(i=0;i<3;i++)
                {   out<<qSetFieldWidth(3)<<left<<i;
                        for(j=0;j<3;j++)
                        {
                            out<<j;
                        }
                        out<<qSetFieldWidth(1)<<'\n';
                }
    }
    return a.exec();
}

16,240

社区成员

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

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