问题标签 [ostream]

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 投票
6 回答
408285 浏览

c++ - 如何正确重载 ostream 的 << 运算符?

我正在用 C++ 编写一个用于矩阵运算的小型矩阵库。但是我的编译器抱怨,以前没有。这段代码被搁置了 6 个月,在这期间我将计算机从 debian etch 升级到 lenny (g++ (Debian 4.3.2-1.1) 4.3.2 ) 但是我在具有相同 g++ 的 Ubuntu 系统上遇到了同样的问题.

这是我的矩阵类的相关部分:

和“实施”:

这是编译器给出的错误:

matrix.cpp:459: error: 'std::ostream& Math::Matrix::operator<<(std::ostream&, const Math::Matrix&)' 必须只取一个参数

我对这个错误有点困惑,但是在这 6 个月里做了很多 Java 之后,我的 C++ 又变得有点生疏了。:-)

0 投票
4 回答
15088 浏览

c++ - 创建一个 ostream

出于教育原因,我正在尝试创建一个 c++ ostream。我的测试将创建一个 ostream,它的行为类似于 ofstream,除了写入文件而不是写入双端队列或向量容器之外。

0 投票
3 回答
26458 浏览

c++ - 如何创建自己的 ostream/streambuf?

出于教育目的,我想创建一个 ostream 和流缓冲区来执行以下操作:

  1. 在执行 << myVar; 时修复字节序;
  2. 存储在双端队列容器中,而不是使用 std:cout 或写入文件
  3. 记录额外的数据,例如我做了多少次 <<、我做了多少次 .write、我写入的字节数以及我 flush() 的次数。但我不需要所有信息。

我尝试过超载,但失败了。我尝试通过做重载写入

在我的 basic_stringstream2 类中(我将粘贴 basic_stringstream 复制到我的 cpp 文件中并对其进行了修改),但代码继续使用 basic_ostream。我查看了代码,看起来我需要重载 xsputn (此页面http://www.cplusplus.com/reference/iostream/ostream上没有提到)但是我还需要重载什么?以及如何构建我的类(它需要继承什么等)?

0 投票
2 回答
1442 浏览

c++ - 编译器未创建模板化 ostream << 运算符

我有一个类,在头部定义为:

在一个实现文件中,我有:

这一切看起来都很犹太。但是,当我尝试使用此运算符(即 std::cout << MyClass())时,我收到以下链接器错误:

我很惊讶编译器没有自动为我生成这个......关于我做错了什么的任何建议?

0 投票
17 回答
148829 浏览

c++ - how do I print an unsigned char as hex in c++ using ostream?

I want to work with unsigned 8-bit variables in C++. Either unsigned char or uint8_t do the trick as far as the arithmetic is concerned (which is expected, since AFAIK uint8_t is just an alias for unsigned char, or so the debugger presents it.

The problem is that if I print out the variables using ostream in C++ it treats it as char. If I have:

then the output is:

instead of

I tried using uint8_t, but as I mentioned before, that's typedef'ed to unsigned char, so it does the same. How can I print my variables correctly?

Edit: I do this in many places throughout my code. Is there any way I can do this without casting to int each time I want to print?

0 投票
5 回答
26898 浏览

inheritance - 如何从 std::ostream 继承?

我一直在谷歌搜索,但我找不到一个简单的答案。它应该很简单,就像 STL 通常一样。

我想定义从 std::ostream 公开继承的 MyOStream。假设每次将某些内容写入我的流时,我都想调用 foo() 。

我知道ostream的公共接口是非虚拟的,那怎么办呢?我希望客户能够在 MyOStream 上同时使用 operator<< 和 write() 和 put() 并使用我的课程的扩展能力。

0 投票
3 回答
5928 浏览

c++ - 让 C++ 类像自定义 ostream、sstream

我有一个 C++ 类MyObject,我希望能够像向 osstream 一样提供这些数据(但与直接 sstream 不同,传入数据以特殊方式格式化)。我似乎无法弄清楚如何为 MyObject 重载运算符以吃给它的输入。

我想要它,这样每一个送入的物品都被: : 包围

所以在给定的例子中,s = ":Hello::12345" 应该是最终结果。我的问题是,我怎样才能告诉对象,当有 a 时<<something,将 :: 放在某物周围。

这可能吗?

0 投票
2 回答
1076 浏览

c++ - 这是重载左流运算符的正确方法吗?(C++)

这个函数声明给了我错误:

错误是:

hand 是我做的一个类, display 是 type 的公共数据成员char*

谁能告诉我我做错了什么?

0 投票
7 回答
38405 浏览

c++ - 将某些内容打印到 std::ostream 并返回 std::ostream 的函数?

我想编写一个函数,将某些内容输出到ostream传入的 a 中,然后返回流,如下所示:

像这样打印值并将函数调用嵌入输出运算符链中会很方便,就像我在main().

但是,它不起作用,并打印:

所需的输出将是这样的:

我怎样才能解决这个问题?我必须定义一个operator<<代替吗?

更新:澄清了所需的输出。

UPDATE2:有些人不明白为什么我会打印这样的数字,使用函数而不是直接打印。这是一个简化的示例,实际上该函数打印一个复杂对象而不是int.

0 投票
3 回答
11104 浏览

c++ - 如何设置以字符串为键、以 ostream 为值的映射?

我正在尝试通过map以下方式在 C++ 中使用容器: Key 是 astring并且 value 是 type 的对象ofstream。我的代码如下所示:

但是,当我尝试编译上述代码时,出现以下错误:

出了什么问题?如果使用 无法做到这一点map,是否有其他方法可以创建这样的键:值对?

注意:如果我用它测试我的代码,map<string, int> foo;它工作正常。