草庐IT

prinf-cout

全部标签

c++ - 为什么 strlen(s) 与 s 的大小不同,为什么 cout char 显示的是字符而不是数字?

我写了一段代码来计算一堆单词中有多少个'e'字符。例如,如果我键入“Ireadthenews”,则显示有多少e的计数器应该是3。#include#includeusingnamespacestd;intmain(){chars[255],n,i,nr=0;cin.getline(s,255);for(i=1;i关于C++中的字符,我有两个不清楚的地方:在上面的代码中,如果我将strlen(s)替换为255,我的代码将无法正常工作。我只能输入一个字,程序就停止了。我在学校被教导strlen(s)是字符串s的长度,在本例中,正如我声明的那样,它是255。那么,为什么可以我不是只输入255,

c++ - 为什么 cout << 不能与重载的 * 运算符一起工作?

我正在创建我的第一个类,主要由Overland的C++WithoutFear指导。我让重载的friendostreamoperatorBCDbcd(10);//bcdisinitialisedto10BCDbcd2(15);//bcd2isinitialisedto15cout有关信息,这是我的原型(prototype):BCDoperator*(intz);friendostream&operator据我所知,operator*返回BCD,因此operator 最佳答案 发生的事情是bcd*2正在生成临时BCD,无法绑定(bind

c++ - C++ 中的 cout(标准输出)

//myfirstprograminC++#includeusingnamespacestd;intmain(){coutcout是一个对象吗?如果是这样,它在哪里实例化?(我没有看到类似“new....”的内容) 最佳答案 cout是在某处声明的全局对象。顺便说一句,与Java或C#不同,您不需要new来创建对象。例如,这将起作用:std::stringstr;//createsanewstd::stringobjectcalled"str" 关于c++-C++中的cout(标准输出)

除非使用 cout,否则 C++ 拒绝正常运行

此代码可以编译,但在没有cout时拒绝跳球。当有cout时,它会正确地使对象(dot)跳转。这只是使用SDL创建super原始游戏的一些练习主循环:while(!quit){while(SDL_PollEvent(&event))if((event.type==SDL_QUIT)||((event.type==SDL_KEYDOWN)&&(event.key.keysym.sym==SDLK_ESCAPE)))quit=true;Uint8*keystates=SDL_GetKeyState(NULL);if(keystates[SDLK_LEFT])dot.left();if(key

c++ - 使用 << 运算符同时写入文件和 cout

我想重载voidoperator 最佳答案 创建一个帮助程序类和重载运算符,负责将流式传输到两个流。使用辅助类而不是尝试覆盖重载的标准库实现operator功能。这应该有效:#include#includestructMyStreamingHelper{MyStreamingHelper(std::ostream&out1,std::ostream&out2):out1_(out1),out2_(out2){}std::ostream&out1_;std::ostream&out2_;};templateMyStreamingHel

c++ - "cout"和 "char address"

这个问题在这里已经有了答案:cout(6个答案)关闭5年前。charp;cout这不会打印字符p的地址。它打印一些字符。为什么?charp;char*q;q=&p;cout即使这样也没有。为什么?

c++ - 奇怪的 cout 行为

我在Ubuntu上编译了一个为Windows开发(并在Windows上运行)的程序。在Ubuntu上,我看到这段代码:strings=values_[9];cout产生这个输出:highxigh第二行的预期输出是“highx”。我知道values_[9]的值最初是从一个文件(写在Windows上)中读取的。打印其他字符串似乎工作正常。这是怎么回事? 最佳答案 运行命令,其输出通过cat-A进行管道传输。可能s的值,或者endl产生的输出给你一个'\r'字符,它通常将光标发回到行首。编辑:进一步思考,杂散的'\r'几乎肯定在s中,而不

c++ - 在 C 中创建 cout 函数?

我假设大多数C++编译器都是用汇编语言编写的。这使它们完全不同的语言(我可能是错的)。也就是说,如果我要创建一个cout普通旧C的样式函数,我该怎么做?cout有一些非常令人印象深刻的功能以这个片段为例://endlnotonlyprintsanewlinebutalsoflushesthestreamcout我很确定在C中可以将其转换为:printf("HelloWorld!\n");fflush(1);//stdout=1下一项业务,运营商。在C++中,这很容易(运算符重载),但我想不出在C中执行此操作的单一方法。 最佳答案 在

c++ - 用结构(无类)cout 样式重载 "<<"

我有一个结构,我想使用“std::cout”或其他一些输出流来输出。这可能不使用类吗?谢谢#include#includetemplatestructpoint{Tx;Ty;};templatestd::ostream&dump(std::ostream&o,pointp)const{ostd::ostream&operator&a){returndump(o,a);}intmain(){pointp;p.x=0.1;p.y=0.3;dump(std::cout,p);std::cout我尝试了不同的语法,但我似乎无法让它发挥作用。 最佳答案

c++ - cout和write在c++中的区别

我仍然对c++中的ostream&write(constchar*s,streamsizen)和c++中的cout之间的区别感到困惑第一个函数将s指向的数据block(大小为n个字符)写入输出缓冲区。字符按顺序写入,直到写入n为止。而cout是表示标准输出流的类ostream的对象。它对应于cstdio流标准输出。任何人都可以清楚地指出这两个功能之间的区别。 最佳答案 ostream&write(constchar*s,streamsizen);是一个无格式输出函数,写的不一定是c-string,因此在数组s中找到任何空字符复制到目