加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在不使用cout,printf或puts()的情况下打印内容

发布时间:2020-12-16 10:23:24 所属栏目:百科 来源:网络整理
导读:我已经了解到了 inline ostream _Cdecl ostream::operator (const signed char * _s) { outstr(_s,(const signed char *)0); return *this;} 是如何在iostream.h头文件中声明(重载)插入操作符(")我可以使用相同的功能在屏幕上打印字符串值吗? 我试过了 #inc
我已经了解到了

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等效代码,我没有任何限制

解决方法

如果您希望跨所有符合标准的C实现的可移植性,您可以通过以下方式将字符串打印到标准输出

const char * str = "Hello Worldn";
fprintf(stdout,str);
fputs(str,stdout);
for (int i=0; str[i]!=0; ++i)
    putchar(str[i]);
for (int i=0; str[i]!=0; ++i)
    putc(str[i],stdout);
for (int i=0; str[i]!=0; ++i)
    fputc(str[i],stdout);
fwrite(str,sizeof(*str),strlen(str),stdout);

另外,您可以使用std :: cerr和std :: clog.他们写入stderr而不是stdout,但从用户的角度来看,这通常是相同的地方:

std::cerr << str;
std::clog << str;

从效率的角度来看,我怀疑这些都会对你有所帮助.为此,您可能希望看一些更具体的平台.对于POSIX系统,请参阅Dave S给出的答案.对于Windows,请参阅this link.

你不应该做的是打开你的头文件并模仿他们使用的东西.至少,不是在中间层,他们在自己的实现中使用不同的各种模糊功能.下一版本可能不存在这些功能.但是,如果你进入最深层次,你会发现特定于操作系统的调用,就像我上面提供的链接中那样.只要您停留在相同的操作系统,甚至操作系统版本之间,那些应该是安全的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读