问题标签 [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.
c++ - std::stringstream 的小数点?
我有一堆整数放入stringstream
s 中。现在我想将stringstream
s 更改为string
s,同时保持 s 的恒定精度string
。我该怎么做?我知道我可以使用stringstreams.precision()
,但由于某种原因它不起作用:
将返回5.23\n3.134\n3.0
,而不是5.23\n3.13\n3.00
c++ - 有效使用 C++ iomanip 库
我Vector
用 C++ 创建了一个类,它对我的问题很有用。我现在正在清理它,我遇到了以下代码:
该代码允许将向量打印为std::cout<<v<<std::endl;
. 每个数字有 23 个空格,其中 16 个是小数。文本右对齐,以便打印:
代替
代码似乎非常重复。您如何“存储”格式(所有setiosflags
,setw
和setprecision
语句),以便您可以说“以标准方式打印字符,但以这种给定格式打印数字”。
谢谢!
编辑
根据 Rob Adams 的评论,我将丑陋的代码(正如其他人所指出的那样,会弄乱“下一个人”的精确度)更简洁(并且正确):
c++ - 如何使用 cout 打印 0x0a 而不是 0xa?
如何使用 cout 打印 0x0a 而不是 0xa?
c++ - cout中“固定”的反义词是什么?
使用时,标题cout
中定义的默认格式化程序是什么?<iomanip>
换句话说,一旦我将格式化程序设置为fixed
using cout << fixed << setPrecision(2)
,我该如何改回来?或者,我要把它改回什么?
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 中糟糕的语言环境支持,还是在这里我可以修复或解决错误的依赖于实现的假设(输入格式)?
c++ - 使用持久 IOManip 的 C++ 输出流运算符重载
我使用了一个朋友函数来赋予我的二维数组类operator<<
功能。
现在,我想打电话:
并让我的二维数组类将流的精度和宽度应用于其每个元素。
在里面,代码有这样一行:
关于如何做到这一点的任何想法?
谢谢!
c++ - 使用 iomanip 将数据输出格式化为带有 Qt 的文本文件
我是一名学生程序员,使用 QT 开发和申请工作。目前我正在开发保存功能,其中数据从表中获取并保存到文件中。当我尝试将数据写入列时遇到了一些麻烦。不要混淆任何人;我的问题是从数据表中保存时格式化文本;不读它。因此,目前当从我的表中保存数据时,它会保存到一个文件中,如下所示:
我需要它看起来像这样
在研究期间,我从 c++ 中的iomanip库中遇到了 setw,它设置了填充数据的最少字符数,然后将其余字符用作填充。听起来很完美吧?问题是我不能让它与除了 cout 之外的任何东西一起工作;这不是我需要的。在写出之前,我需要它基本上将空格附加到我的字符串。
我也觉得 Qt 可能应该有一些东西来帮助我完成我需要的东西(更容易)。在引用QString 文档、QStringList Doucmentation以及最重要的QTextStream 文档之后,我似乎无法找到这个成员函数。
目前我的保存功能如下所示:
我很确定 setFieldWidth 是我从QTextStream 文档中得到的答案。但我无法让它正常工作。试过:
我希望这对某人来说是一个简单的答案,我只是遇到了一些作家的障碍,但在完成这个过程中会得到任何帮助。感谢您阅读我的帖子,我感谢任何有助于弥合此处差距的帮助!
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。我忽略了一些相当明显的方法吗?有没有办法使用指针隐式转换?
c++ - std::left/right 的 Iomanip 错误
我试图左对齐一条线的一侧并右对齐另一侧,但我无法让右侧对齐。谁能抓住我的错误?
输出都是左对齐的,我不明白我需要做什么才能使这一切都正确。谢谢!
c++ - 使用std :: setw后如何从流输出时清除宽度?
我正在使用 std::stringstream 将固定格式的字符串解析为值。但是,要解析的最后一个值不是固定长度。
要解析这样的字符串,我可能会这样做:
但是如何设置宽度以便输出字符串的其余部分?
通过反复试验,我发现这样做很有效:
但是正确的方法是什么?