草庐IT

prinf-cout

全部标签

c++奇怪的std::cout行为使用指针

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatisthecorrectanswerforcout我刚输出文字,突然注意到。#includeintmain(){intarray[]={1,2,3,4};int*p=array;std::cout这样的行为对我来说很奇怪,为什么会这样?

c++ - 继续获取 "error: use of undeclared identifier ' cout' 和错误 : reference to overloaded function could not be resolved

我正在编写一个使用许多不同函数的排序程序,你们都可以从我的声明。但是,当我尝试编译和运行我的程序时,我不断遇到这些相同的错误它们如下:error:useofundeclaredidentifier'cout';didyoumean'count'?couterror:referencetooverloadedfunctioncouldnotberesolved;didyoumeantocallit?couterror:useofundeclaredidentifier'endl';didyoumean'end'?cout我不太确定为什么会出现这些错误....我想我已经包含了我需要的一切为

c++ - 为什么 cout 的访问冲突和 printf 的堆栈溢出

我想知道为什么在下面的两个代码片段中,cout和printf会发生访问冲突和堆栈溢出。我想知道为什么第一个代码的访问冲突而不是堆栈溢出。我得到访问冲突的第一个代码:voidTest();voidTest(){staticinti=0;cout我得到StackOverflow的第二个代码:voidTest();voidTest(){staticinti=0;printf("%d\n",i++);Test();}intmain(){Test();return0;} 最佳答案 我假设您了解这两个函数在尝试无限递归后由于堆栈耗尽而崩溃。我认

c++ - 有没有一种方法可以在不使用命名空间 std 或以 std::为前缀的情况下引用 cout?

我是C++的新手,我正在使用std::cout用于调试目的。虽然,我真的很想能够只使用cout而不是整个std::cout事物。我知道我可以导入std命名空间,但有人解释说这是一件坏事,因为可能会因此发生名称冲突。有什么办法吗?我试过了std::ostreamcout=std::cout;但是我明白了function"std::basic_ostream::basic_ostream(conststd::basic_ostream&)[with_CharT=char,_Traits=std::char_traits]"(declaredatline391of"/usr/include/

c++ - 为什么cout的输出<< 7/9*9;是零吗?

为什么下面代码的输出等于0或者serven?cout感谢您的帮助。 最佳答案 7/9*9将这些数字计算为整数,因此7/9计算为0,并且0*9=0。当你让它们漂浮时,你正在执行预期的计算。尝试7.0/9*9得到7,然后你将进行浮点运算。 关于c++-为什么cout的输出 https://stackoverflow.com/questions/1540515/

c++ - cout 和 printf 适用于内置调试未发布的 Dll

我构建了一个DLL,它通常通过SetWindowHookEx注入(inject)到控制台应用程序中。DLL将信息输出到控制台很重要,我一直在使用std::cout进行操作。DLL接近完成,直到我尝试在Release模式下构建DLL,这使得所有cout行都变得无用。我已经通过执行导致程序在dllmain函数中崩溃的简单空取消引用来验证DLL正在注入(inject)和执行。与std::printf相同。voidonAttach(){//WARNINGTHISISADEMONSTRATIONstd::cout我真的不知道如何解决这个问题。发布链接器是否以某种方式排除了依赖项?我正在使用MSV

c++ - cout 同步关闭时的速度

我想比较C++中printf和cout的速度,使用以下cout代码:#includeintmain(){for(inti=0;iprintf的这段代码:#includeintmain(){for(inti=0;i我多次运行这两个程序,这是结果(使用g++编译器):cout:17.116sprintf:9.153s所以printf比cout快两倍。我在StackOverflow中搜索了这种行为背后的原因,我发现printf比cout快,因为它是一个函数,而cout是一个对象.但我还了解到cout较慢,因为它与标准C流同步。所以我接下来要做的是用这段代码关闭所有iostream标准流与其相

c++ - 为什么 cout 立即输出?

cout是缓冲流。这意味着数据将被写入缓冲区,并在流被刷新、程序终止或缓冲区完全填满时打印。我做了一个小程序来测试它是如何工作的,但我不明白为什么它甚至在满足上述任何条件之前就打印出来。#include#includeusingnamespacestd;intmain(){cout运行时,在循环开始之前输出“Test”。为什么我的输出直到程序终止才被缓冲? 最佳答案 在here上对此进行了很好的讨论.来自其中一个答案:EveryC++streamusesanassociatedstreambufferobjecttoperformb

C++:&(std::cout) 作为模板参数

为什么不能将std::cout的地址作为模板参数传递?或者,如果可能的话,怎么做?这是我尝试过的:#includetemplateclassMyClass{public:voiddisp(void){(*stream)MyObj;MyObj.disp();return0;}我从clang++-std=c++11得到的错误信息:main.cpp:15:11:error:non-typetemplateargumentdoesnotrefertoanydeclarationMyClassMyObj;^~~~~~~~~~~main.cpp:6:24:note:templateparamete

c++ - BOOST 线程 : cout behavior

我是Boost线程的新手,我对如何从多个线程执行输出感到困惑。我有一个简单的boost::thread从9倒数到1;主线程等待然后打印“LiftOff..!!”#include#includeusingnamespacestd;structcallable{voidoperator()();};voidcallable::operator()(){inti=10;while(--i>0){cout问题是我必须在线程中使用明确的“cout.flush()”语句来显示输出。如果我不使用flush(),我只会得到“LiftOff!!”作为输出。有人可以告诉我为什么我需要显式使用flush()