草庐IT

c++ - 为什么我不能使用 cout 在 C++ 中打印字符串值数组?

这个问题在这里已经有了答案:Coutofastringisgivinganerrorandahardtimesomeinsighthelppls?(3个答案)关闭8年前。这是我正在编写的一个非常简单的程序的代码片段。我是C++的新手,但有Java背景,所以我可能对打印值的工作方式有先入之见。我的问题是当我执行此行时:cout我收到一条错误消息,指出操作数与为什么会这样?代码如下:#include"stdafx.h"#includeusingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){stringverticies[6]={"AB","AC

c++ - 在 C++ 中多线程时与 cout 和 printf 的区别

一些背景:我有一个使用pthreads的多线程C++程序。该程序是一个酒店预订系统,有10位客人(每个人都有自己的线程),一个入住台(1个线程)和一个退房台(1个线程)。酒店只有5个房间可供客人入住。我在这个程序中使用信号量来强制执行互斥和事件排序。问题:这是我的代码(只是需要的部分...)sem_init(&openRooms,0,5);sem_wait(&openRooms);//waitsfortheretobeanopenroomatthehotelcout酒店有5个房间,因此一次可以入住5位客人。当我运行程序时,我得到输出(或类似...)GuestGuestGuestGues

c++ - cpp cout中的单引号

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭4年前。Improvethisquestion摘自《Programming:PrinciplesandPracticesusingC++》第72–73页:Wesawthatwecouldn’tdirectlyaddcharsorcompareadoubletoanint.However,C++providesanindirectwaytodob

c++ - 为什么 'operator<<(cout, double)' 不起作用?

我正在研究重载运算符。我不明白使用之间的区别-double上的运算符(operator)/一个std::string.intmain(){doublea=12;strings="example";operator为什么不是operator和cout.operator工作? 最佳答案 因为该运算符被定义为成员函数,而不是自由函数。运算符可以通过这两种方式重载,当与常规运算符语法一起使用时,这对用户来说是透明的。但是,当使用显式语法时,您必须使用特定于实际函数定义的语法。此示例显示了实践中的差异:classStream{Stream&o

c++ - 关于标准 :cout in C++

这段代码有没有错误:#includeusingnamespacestd;intmain(){std:coutGCC未检测到错误,但std:cout似乎不标准。 最佳答案 没有错误。我可以重写您的代码以使其更清晰:#includeusingnamespacestd;intmain(){std:cout您创建了一个名为std的标签。cout被无限制地使用,这没关系,因为它上面有using-directive用于std。您可以像以前一样通过将它们并排书写来连接字符串文字。这是格式良好的代码,打印“hello”后跟一个换行符。

c++ - C++ 中 std::cout 的奇怪行为

#includeinta(int&x){x=-1;returnx;}intmain(){intx=5;std::cout为什么输出是“-15”?PS:编译器是:i686-apple-darwin11-llvm-g++-4.2(GCC)4.2.1(基于AppleInc.build5658)(LLVMbuild2336.11.00)PS:未做任何优化编译 最佳答案 在这一行中:std::cout未指定a(x)和x的求值顺序。发生的事情是未指定的行为,在您的情况下,编译器决定先评估x,然后再评估a(x)。

c++ - 如何将对 `std::cout` 的引用存储为类成员

我正在使用一个旨在像这样使用的类:Output()在其operator我明确使用std::cout,但我想要一个解析为“std::cout”的静态类成员,这样我就可以做这样的事情:copy(some_string_set.begin(),some_string_set.end(),ostream_iterator(Output::m_stream,","));或类似的东西(在我修复静态数据成员之前我无法修复底线。我什至试过auto,但是GCC抛出了一个error:'std::cout'cannotappearinaconstant-expression对着我。我怎样才能做我想做的事?(

c++ - cout 打印十六进制而不是十进制

有没有人想到一个简单的std::cout可能会打印一个十六进制格式的值,而它应该只格式化一个小数(比如整数)?例如,我有一行:std::cout((target->currWorker)->getEntities().size())currWorker这将打印:_Agent[0x2c6d530]isstillamong0x1entitiesofworker[0x2c520f0]注意:1-所说的输出有时是十进制,有时是十六进制2-即使我将((target->currWorker)->getEntities().size())更改为(int)((target->currWorker)->g

c++ - cout 打印 "-0"而不是 "0"

#includeusingnamespacestd;intmain(){doubleu=0;doublew=-u;cout为什么这段很棒的代码会输出-0而不是人们期望的0? 最佳答案 float的IEEE754标准将符号位与尾数分开,允许零为负数。Wikipedia应该能够帮助解释这一点。 关于c++-cout打印"-0"而不是"0",我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

c++ - std::cout 是否保证被初始化?

我对C++的了解是,不应假设全局实例的构造(和破坏)顺序。当我用一个在构造函数和析构函数中使用std::cout的全局实例编写代码时,我遇到了一个问题。std::cout也是iostream的全局实例。std::cout是否保证在任何其他全局实例之前被初始化?我写了一个简单的测试代码,它运行得很好,但我仍然不知道为什么。#includestructtest{test(){std::cout打印test::ctorHelloworldtest::dtor是否有可能代码没有按预期运行? 最佳答案 答案会有所不同,具体取决于您使用的是C+