c++ - 如何在 C++ 中打印复数
问题描述
我正在玩 C++ 中的类。目前我正在研究一个复数类,并希望能够以以下格式打印它们:-2+3i
, 1-4i
. 这意味着,如果它是负数,我希望实部只有一个符号。相反,无论是正数还是负数,虚部都应该有一个符号。
我尝试了以下没有按预期工作:
inline void Complex::print() const {
std::cout << x;
std::cout << std::showpos << y << "i" << std::endl;
}
如果符号为正,则此方法还为实部打印符号。为什么会std::showpos
影响第一行?
有没有更好的方法来做到这一点?
解决方案
showpos
是“粘性的”,并适用于后面的每个数字,直到它变回noshowpos
.
您可以showpos
与本地流一起使用以避免弄乱std::cout
:
inline void Complex::print() const {
std::ostringstream y_stream;
y_stream << showpos << y;
std::cout << x
<< y_stream.str() << 'i'
<< std::endl;
}
推荐阅读
- azure-api-management - 如果原始标头存在,API 管理返回空响应
- mysql - 在 AWS 实例上连接到 mysql 5.7 时出现问题
- java - 如何使用实现类中的方法来捕获 Java 中的事件?
- c# - 从具有日期和时间的字符串中删除时间戳 - C#
- node.js - Angular 兼容项目的对等依赖项?
- heroku - 是否可以停止 Heroku Daily Dyno 重新启动 Hobby Dyno
- java - spring 如何在内部使用 _csrf 参数或 X-CSRF-TOKEN 标头验证 csrf 令牌?
- javascript - $.getscript 添加重复的事件监听器
- ios - 按其 Double 参数之一对 Object 数组进行排序
- google-apps-script - 表单触发器中的错误来源和响应