问题标签 [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++ - 格式,iomanip,C++
我正在尝试学习使用命名空间声明,而不是仅仅说“使用命名空间标准”。我正在尝试将我的数据格式化为小数点后 2 位,并将格式设置为固定且不科学。这是我的主文件:
在 Visual Studio 2008 上,当我运行我的程序时,我在想要的数据之前得到“8192”的输出。这有什么原因吗?
另外,我认为我没有正确设置固定部分或小数点后 2 位,因为一旦添加了 setprecision(2),我似乎就得到了科学记数法。谢谢。
c++ - 在整个文件范围内设置 std::cout 的精度 - C++ iomanip
我正在做一些计算,结果被保存在一个文件中。我必须输出非常精确的结果,接近双变量的精度,为此我使用 iomanip setprecision(int)。问题是我必须将 setprecision 放在输出中的任何位置,如下所示:
这非常麻烦。有没有办法更一般地设置 cout 固定修饰符?
谢谢
c++ - 有没有组合流操纵器的好方法?
如果我想在流上输出一个固定宽度的 4 位十六进制数字,我需要执行以下操作:
这似乎有点啰嗦。使用宏有助于:
有没有更好的方法来组合机械手?
c++ - 如何切断前导数字?C++
如何在不使用库的情况下切断数字的前导数字以便仅显示最后两位数字。例如:
1923 年至 23 日
2001 至 01
1234 至 34
123 至 23
只有
谢谢!
c++ - 在数字前加 0
我希望输出00016
setw()
前面带有空格。不是可以配置要添加哪些字符setw()
吗?
我的最终目标是在 4 个位置打印一个 2 字节的十六进制数字。像这样的东西:
我期待得到这个输出:00A7
c++ - 如何使用 AF(而不是 af)流式传输十六进制数字?
是否可以ostream
使用字符A-F
而不是输出十六进制数字a-f
?
这个输出abc
,而我更愿意看到ABC
.
c++ - 输入操作数是否在 C++ 中返回布尔值?
通读加速 C++,他们举了一个我不明白的例子。这是一个带有条件(cin>>x)的while循环。此时在脚本中,x 已被声明为双精度数。我知道只要 x 成功接收输入,循环就会执行,但是 >> 返回一个布尔值?我想我只需要一点帮助来了解它到底是什么 >> 和 << 做...。另外,当我们讨论这个主题时,iostream、ios 和 iomanip 之间有什么区别
c++ - `std::istream::operator>>()` 可以接受像 stdio 的 %i 格式说明符这样的整数基数前缀吗?
当使用 scanf() 及其变体时,格式说明符%i
将接受十六进制(前缀为“0x”)、八进制(前缀为“0”)或十进制(无前缀)的数据,例如字符串“0x10”、“020” ", 和 "16" 都转换为十进制值为 16 的整数。
这可以通过std::istream::operator>>
格式化输入来完成吗?
使用>> i
没有 i/o 操纵器的普通“0x10”被转换为零(或者更确切地说,前导 0 是,“x10”部分不被处理),“020”到 20。 和操纵器的hex
行为分别类似于,oct
和。我正在寻找一个像.dec
%x
%o
%d
%i
有趣的是,hex
操纵器可能同时接受“0x10”和“10”转换为十进制的 16。
如果您想知道,我正在实现一个表达式求值器,并且我希望使用 C/C++ 前缀约定允许整数操作数为十六进制、八进制或十进制。当前的实现 usingsscanf()
自动执行此操作%i
,我很好奇是否可以将其修改为使用 iostream 而无需显式解析数字格式。
c++ - 为什么 cout 返回 smanip?
谁能解释一下 setw 操纵器的声明?我完全被吹走了试图理解它。!iomanip中setw的声明如下
现在什么是smanip?当我们给 std::cout << setw(10) << "Hai" [我想知道输出实际上是如何受 setw 影响的,换句话说,在幕后发生的动作会发生什么)
c++ - setbase(8) 和 std::cout<
std::cout<<std::setbase(8)<<32;
它们之间有什么区别std::cout<<std::oct<<32;
?它们是等价的吗?
还有,目的是什么std::cout.oct
??
std::cout<<std::setbase(8)<<32;
它们之间有什么区别std::cout<<std::oct<<32;
?它们是等价的吗?
还有,目的是什么std::cout.oct
??
std::cout<<std::setbase(8)<<32;
它们之间有什么区别std::cout<<std::oct<<32;
?它们是等价的吗?
还有,目的是什么std::cout.oct
??
std::oct 将 str 流的基域格式标志设置为 oct。
std::setbase将基域格式标志设置为其可能值之一:hex、dec 或 oct,具体取决于 base 参数的值。
我认为最大的区别在于 setbase 需要一个参数,因此您可以将一个包含所需数字基数的变量传递给它。而不是使用一堆 if 语句来检查变量并使用 dec、oct 或 hex。
我不确定 std::cout.oct 虽然。