我已经了解到
inline ostream & _Cdecl ostream::operator<< (const signed char * _s) {
outstr(_s, (const signed char *)0);
return *this;
}
是如何在 iostream.h 头文件中声明(重载)插入运算符 (<<)。我可以使用相同的函数在屏幕上打印字符串值吗?
我试过了
#include<iostream.h>
int main() {
outstr("Hello world!", (const signed char *)0);
return 0;
}
结果出错了。我想使用这样的东西来看看是否有一些可能的方法来回答这个在屏幕上打印某些东西的查询,而不使用 printf、cout 或 puts()。
更新:如果您有任何建议,我会很欢迎
#include<stdlib.h>
void main() {
system("echo /"Hello world!/"");
}
注意:如果您可以提供无需 printf()、cout 或 puts() 即可打印的 C 等效代码,我没有任何限制
原文由 Praveen Vinny 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您希望在所有符合标准的 C++ 实现中具有可移植性,您可以通过以下方式将字符串打印到标准输出
此外,您可以使用
std::cerr
和std::clog
。他们写信给stderr
而不是stdout
,但从用户的角度来看,这通常是同一个地方:从效率的角度来看,我怀疑这些中的任何一个都会对您有所帮助。为此,您可能希望查看一些更特定于平台的东西。对于 POSIX 系统,请参阅 Dave S 给出的答案。对于 Windows,请参阅 此链接。
你不应该做的是打开你的头文件并模仿他们使用的东西。至少,不是在中间级别,他们在自己的实现中使用不同的各种晦涩功能。这些功能在下一个版本中可能不存在。但是,如果您深入到最深层次,您会发现操作系统特定的调用,就像我上面提供的链接中的调用一样。只要您使用相同的操作系统,甚至在操作系统版本之间,这些都应该是安全的。