首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于控制台输出的QTextStream

用于控制台输出的QTextStream
EN

Stack Overflow用户
提问于 2010-12-03 04:29:06
回答 1查看 4.8K关注 0票数 2

在控制台输出中使用QTextStream时,我遇到了一个非常烦人的问题。

代码语言:javascript
复制
QTextStream cout(stdout, QIODevice::WriteOnly);
cout.setRealNumberPrecision(1);
cout.setPadChar('.');

//  some code generating values of f[i] [...]

for (int i = 10; i >= 0; i--)
{
    if (f[i] < -0.04 || f[i] > 0.04 || 1)
    {
       cout.setRealNumberNotation(QTextStream::FixedNotation);
       cout.setFieldAlignment(QTextStream::AlignRight);
       cout.setFieldWidth(8);
       cout << f[i];
       cout.setFieldAlignment(QTextStream::AlignLeft);
       cout.setFieldWidth(3);
       cout << "*x^";
       cout.setFieldAlignment(QTextStream::AlignLeft);
       cout.setNumberFlags(cout.numberFlags() & ~QTextStream::ForceSign);
       cout << i << endl;
    }
}

找到的多项式的结果如下所示:

代码语言:javascript
复制
.....0.0*x^10.
......-0.0*x^9..
.......0.0*x^8..
......-0.0*x^7..
.......0.0*x^6..
.......1.0*x^5..
.....-36.0*x^4..
.....397.0*x^3..
...-1674.0*x^2..
....2753.0*x^1..
...-1440.0*x^0..
..

我无法摆脱第一行中的这个奇怪的变化,我不知道..是从哪里来的。我认为对齐标志可能有一些问题,但不知道具体是什么。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-03 05:01:35

如果让我猜测,我会说endl是左对齐的,并填充为3个字符,在返回之后出现额外的两个字符,以便它们显示在下一行的开头。第一行上没有,最后一行上只有一个。尝试在输出endl之前将字段宽度设置回1。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4339534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档