问题标签 [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++ - C++ cout 十进制对齐
我很难对齐十进制值。我很确定它是正确对齐和 setprecision/fixed 的组合,但它似乎不起作用。我知道已经就该主题提出了其他问题,但我还没有找到一个明确的解决方案来获得一堆列(要对齐的唯一 cout 语句)。
这是我的一段代码:
这是它的样子:
这也是我想要的:
c++ - g++ 输出和 Visual Studio 输出之间的差异。浮点变量
我正在使用 c++ 中的clock_t 函数进行测试,但遇到了一个问题。当我编译时,我在 2 个不同的编译器上进行。我的 Windows 7 计算机(2012)上的 Visual Studio,以及名为“ranger”的 Unix 系统上的 g++。当我刚刚编译我的代码以尝试以秒为单位输出运行不同排序函数所需的时间(最多千分之一秒)时,g++ 编译器似乎完全忽略了我将时间戳除以 1000 的尝试以便将其从毫秒转换为第二种格式。有什么建议吗?g++ 和 Visual Studio 的编译器在这方面有区别吗?
一个简短的代码片段(输出和我为除法所做的事情):
Visual Studio 输出(正确):
Unix输出(不正确):
有什么建议么?谢谢!
c++ - 如何用自己的值填充 tm 结构,然后将它们打印出来?
我想用小时、分钟和秒的自定义值填充我的 tm 结构,然后使用 std::put_time() 输出它。
我的代码位于包含日期和时间的自定义类的 to_string 函数中:
我错过了什么重要的东西吗?我已经在网上阅读了很多关于这个的内容。我见过的所有示例都使用本地时间来填充 tm 结构(这显然不是我想要做的)。
所以.. 如果 hour_、minute_ 和 second_ 都等于 0,我希望它打印 12:00:00 am
提前感谢您的帮助。
编辑:输出的示例:
“CE”之后的空格是时间应该在哪里。
此外,将其更改为:
和:
给我相同的输出。我忘了说我也试过了。
c++ - 使用犰狳库时如何增加显示的位数
我正在使用犰狳线性代数库对矩阵进行对角化。我需要在最后增加显示/写入文件的位数。根据犰狳的参考,“arma::mat”将创建一个双矩阵。因此,我尝试使用“iomanip”中的 std::setprecision,但效果不佳。这是捕获问题的最小代码:
而且,这是我得到的:
奇怪的是,它适用于传递给双变量“Trace_A”的跟踪,但不适用于矩阵本身。知道我在这里做错了什么吗?
c++ - 流出字符串的一部分
我想流出 astd::string
但我希望能够在没有前两个字符或最后两个字符的情况下做到这一点。
例如:
有什么iomanip
工具吗?还是我应该继续构建临时string
s?
c++ - 用 setw 截断
有没有办法可以强制setw
截断?
假设我想得到输出:
呜呜呜呜呜呜呜呜呜呜呜呜
呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜
有没有办法使这项工作:
c++ - 在 C++ 中重置输出标志
我打算在我结束使用的行上将所有输出标志重置为默认值resetiosflags
函数的行上将所有输出标志重置为默认值。当我尝试以这种方式执行此操作时,它提供了错误的输出,这与我的预期相反。
我已知的替代方法是通过重述它们来单独取消标记它们,但这似乎是多余的。
c++ - 准备好使用 C++ iomanip 包装器了吗?
由于iomanip流修饰符的原始使用是 a) 冗长和 b) 容易出错(粘性与非粘性等),对于用户定义的类型,所有这些东西都可以隐藏在默认值中operator<<
......如图所示,例如。
但是,在格式化内置类型时(即使在用户定义的运算符中),使用类似于(beware C++14)的方法会更方便(恕我直言) ,其中数据被包装在函数调用中返回一个临时对象,该对象设置 + 重置适当的标志。std::quoted
本质上,而不是写:
你会假设写:
如示例所示,标志的组合可能会变得棘手,而且我确信魔鬼在细节中,所以我想知道是否有任何现有技术/现有的帮助库试图解决“雪佛龙地狱”。:-)
- 是否有任何现有的图书馆解决这个问题?
- 如果一个人想自己想出一套助手,这里有什么技术陷阱?
具体来说,这个问题与任何类型的“类型安全格式字符串”(如 Boost.Format 提供的)无关。
我也不是在要求一个“最好的”库,我是在询问任何为普通 ostream 做这件事的库。(因为我找不到任何东西。)
例如,C++ Format 的 write API做了这样的事情,但它不是为 std::iostreams 做的,而是为库的“stream”类型做的:
c++ - 当您可以使用 setprecision fixed 时,为什么还要使用 showpoint?
我不太了解 showpoint 的目的,我知道它强制显示小数点,但是在不使用 showpoint 的情况下使用“cout << setprecision << fixed”就足够了。
你能告诉我一个必须有showpoint的例子吗?
c++ - 将格式化的 char 数组发送到 ostream,无需额外的内存复制
我需要向 ostream 发送一个 char 数组。假设我有以下打印功能:
版本 1:
版本 2:
以上两个版本都在一定程度上起作用。版本 1 看起来效率较低,因为它会创建一个额外的字符串对象(导致内存分配和数据复制)。
然而,版本 2 消除了格式化的可能性。在以下示例中,版本 1 效果很好(意味着 io 操纵器成功将宽度设置为 10 并将其应用于下一个输出字段):
有没有办法保持 V1 中的功能,但无需为分配/内存复制支付额外费用?