问题标签 [iomanip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
57745 浏览

c++ - std::stringstream 的小数点?

我有一堆整数放入stringstreams 中。现在我想将stringstreams 更改为strings,同时保持 s 的恒定精度string。我该怎么做?我知道我可以使用stringstreams.precision(),但由于某种原因它不起作用:

将返回5.23\n3.134\n3.0,而不是5.23\n3.13\n3.00

0 投票
4 回答
3804 浏览

c++ - 有效使用 C++ iomanip 库

Vector用 C++ 创建了一个类,它对我的​​问题很有用。我现在正在清理它,我遇到了以下代码:

该代码允许将向量打印为std::cout<<v<<std::endl;. 每个数字有 23 个空格,其中 16 个是小数。文本右对齐,以便打印:

代替

代码似乎非常重复。您如何“存储”格式(所有setiosflags,setwsetprecision语句),以便您可以说“以标准方式打印字符,但以这种给定格式打印数字”。

谢谢!

编辑

根据 Rob Adams 的评论,我将丑陋的代码(正如其他人所指出的那样,会弄乱“下一个人”的精确度)更简洁(并且正确):

0 投票
9 回答
72360 浏览

c++ - 如何使用 cout 打印 0x0a 而不是 0xa?

如何使用 cout 打印 0x0a 而不是 0xa?

0 投票
4 回答
11606 浏览

c++ - cout中“固定”的反义词是什么?

使用时,标题cout中定义的默认格式化程序是什么?<iomanip>换句话说,一旦我将格式化程序设置为fixedusing cout << fixed << setPrecision(2),我该如何改回来?或者,我要把它改回什么

0 投票
2 回答
1398 浏览

c++ - std::get_time 和其他语言环境功能在 Windows 上无法正常工作

在我尝试使 libc++ 及其测试在 Windows 上运行时,我遇到了一个我似乎无法解决的问题。以下代码取自 libc++ 测试代码,并在 Mac(可能还有 FreeBSD)上通过,但不适用于 MinGW-w64 或 MSVC 2010 SP1。

Mac/FreeBSD 的测试通过,但不同的元素对于 Windows 都是 0。对于 MinGW-w64+libc++ 和 MSVC10+Microsoft 的 STL 也是如此。

这只是 Windows 中糟糕的语言环境支持,还是在这里我可以修复或解决错误的依赖于实现的假设(输入格式)?

0 投票
0 回答
347 浏览

c++ - 使用持久 IOManip 的 C++ 输出流运算符重载

我使用了一个朋友函数来赋予我的二维数组类operator<<功能。

现在,我想打电话:

并让我的二维数组类将流的精度和宽度应用于其每个元素。

在里面,代码有这样一行:

关于如何做到这一点的任何想法?

谢谢!

0 投票
1 回答
1838 浏览

c++ - 使用 iomanip 将数据输出格式化为带有 Qt 的文本文件

我是一名学生程序员,使用 QT 开发和申请工作。目前我正在开发保存功能,其中数据从表中获取并保存到文件中。当我尝试将数据写入列时遇到了一些麻烦。不要混淆任何人;我的问题是从数据表中保存时格式化文本;不读它。因此,目前当从我的表中保存数据时,它会保存到一个文件中,如下所示:

我需要它看起来像这样

在研究期间,我从 c++ 中的iomanip库中遇到了 setw,它设置了填充数据的最少字符数,然后将其余字符用作填充。听起来很完美吧?问题是我不能让它与除了 cout 之外的任何东西一起工作;这不是我需要的。在写出之前,我需要它基本上将空格附加到我的字符串。

我也觉得 Qt 可能应该有一些东西来帮助我完成我需要的东西(更容易)。在引用QString 文档QStringList Doucmentation以及最重要的QTextStream 文档之后,我似乎无法找到这个成员函数。

目前我的保存功能如下所示:

我很确定 setFieldWidth 是我从QTextStream 文档中得到的答案。但我无法让它正常工作。试过:

我希望这对某人来说是一个简单的答案,我只是遇到了一些作家的障碍,但在完成这个过程中会得到任何帮助。感谢您阅读我的帖子,我感谢任何有助于弥合此处差距的帮助!

0 投票
2 回答
966 浏览

c++ - 混合数字类 istream 问题

我在夏天给自己布置了一些作业,我完成了 98% 的项目由于这个问题而陷入停顿。

我有一门叫做混合的课程。它包含整数、分子和分母的成员数据。我需要重载所有常用运算符,以允许混合类型对象的乘法、加法、比较和流式传输。除了 >> (提取运算符)之外,我已经重载了所有运算符。

读入的所有混合数字的格式为: 整数分子/分母

例如:1 2/3、0 7/8、-3 18/5、0 -1/89

标题:friend istream& operator>> (istream &, Mixed);

CPP 文件:istream& operator>> (istream &in, Mixed m) {...}

对于作业,我仅限于 iostream 和 iomanip 库。我的计划是从流中读取值并将它们分配给临时 int 变量(w,n,d),然后我将使用 Mixed 构造函数来创建对象 m。不幸的是,我想不出一种方法来分离分子和分母。它们都是整数,但它们之间有一个字符 (/)。

  • 我不能将 getline() 与它的分隔符一起使用,因为它将数据分配给一个 char 数组,我不相信我可以在没有另一个库的情况下将其转换为 int。
  • 出于同样的原因,我不能使用 char 数组然后对其进行分段。
  • 我不能在 get() 和 peek() 中使用 while 循环,因为我认为我不能将 char 数组转换为 int。
  • 我不能使用字符串或 c 字符串然后对其进行分段,因为这需要外部库。

再一次,我需要只使用 iostream 和 iomanip 将像“22/34”这样的值拆分为 22 和 34。我忽略了一些相当明显的方法吗?有没有办法使用指针隐式转换?

0 投票
1 回答
4938 浏览

c++ - std::left/right 的 Iomanip 错误

我试图左对齐一条线的一侧并右对齐另一侧,但我无法让右侧对齐。谁能抓住我的错误?

输出都是左对齐的,我不明白我需要做什么才能使这一切都正确。谢谢!

0 投票
4 回答
1892 浏览

c++ - 使用std :: setw后如何从流输出时清除宽度?

我正在使用 std::stringstream 将固定格式的字符串解析为值。但是,要解析的最后一个值不是固定长度。

要解析这样的字符串,我可能会这样做:

但是如何设置宽度以便输出字符串的其余部分?

通过反复试验,我发现这样做很有效:

但是正确的方法是什么?