草庐IT

prinf-cout

全部标签

c++ - 使用 MS 编译器的 std::cout 非常慢

我正在打印多次计算迭代的进度,输出实际上是其中最慢的部分,但只有当我使用VisualC++编译器时,MinGW才能在同一系统上正常工作。考虑以下代码:#include#includeusingnamespacestd;#defineTO_SEC(Time)\chrono::duration_cast>(Time).count();constintREPEATS=100000;intmain(){autostart_time=chrono::steady_clock::now();for(inti=1;i现在使用MinGW(“g++source.cpp-std==c++11”)编译时得到

c++ - 在 C++ 中是否存在与 qDebug 类似的 cout 替代品?

这个问题在这里已经有了答案:C++coutautoseparator(7个答案)关闭4年前。我喜欢使用Qt中的qDebug在C++中将一些变量写入控制台输出是多么容易:inta=b=c=d=e=f=g=1;qDebug()结果:1111111相比之下,使用std::cout需要我手动添加间距和换行符才能获得相同的结果:std::cout虽然我经常使用Qt,但有时在我工作的项目中添加Qt框架只是为了访问qDebug会过大。虽然编写一个行为类似于qDebug的新类并不难,但我想知道是否有任何既定的std::cout替代品具有与类似的行为qDebug已经存在?编辑:理想情况下,我正在寻找的是

java - System.out、stdout 和 cout 是一回事吗?

System.out、stdout和cout在Java、C和C++中分别是完全相同的东西吗?为什么同一事物有三个不同的名称(尤其是当C、C++和Java有很多共同点时)?此外,我知道它们的用途,但我的意思是,它们到底是什么? 最佳答案 cout本质上与stdout相同但不同的是cout类型为ostream(这实际上意味着您可以使用输入格式化数据或使用write方法输入未格式化数据。stdout附加到文件描述符(标准输出是FILE*)。stdout文件描述符是1.因为它返回对文件描述符的引用,所以可以在fputs中使用和fprintf

c++ - Assert错误,用cout证明

当我运行它时,在main()中,cout打印5.395。但是断言说它失败了!!这真是令人难以置信,为什么会这样?#include#includeusingnamespacestd;constfloatA=1.6;constfloatC=1.55;constfloatG=2.2;constfloatT=1.23;charempty[18];intarraySize;voidcopyArray(charsourceArray[],chartargetArray[],intsize){for(inti=0;i编辑:感谢所有的回答,我只是乘以1000,转换为int,转换回double,然后除以

c++ - 在 cout 上打印时间时出现奇怪的 C++ 行为

运行以下代码:1#include2intmain(intargc,char**argv)3{4time_tt1=time(0);5time_tt(0);6std::cout构建:g++test1.cppOutput:./a.outBUGLINEThuJan101:00:001970ThuJan101:00:001970PRINTSFINEHEREThuJan101:00:001970WedJul1016:31:482013为什么代码的#6中的流变得奇怪?? 最佳答案 http://www.cplusplus.com/referenc

c++ - 在 std::cout 之后使用 std::cin 时换行符来自哪里?

考虑下面的简单例子#includeintmain(){usingnamespacestd;charname[30];cout>name;cout该程序的示例输出如下:Whatisyourfirstname:BobHelloBob该程序按预期工作,但我不明白输出流如何知道转到下一行。我基本上是在考虑两个独立的信息流,并且对输出流如何知道进入下一个只是因为它后面跟着输入感到困惑。换行符从哪里来?? 最佳答案 输出流不会转到下一行。您在键入名称后按了Enter。终端有本地回显,这意味着您在键盘上输入的字符会回显到终端。您在屏幕上看到的“B

c++ - std::cout<< x 之间的区别是什么?和 std::cout<<x<<std::endl;?

我是编程的新手,我昨天开始自学,我得到了一切,但老实说,我不明白两者之间的区别std::cout和std::cout没有人向我解释过这个,我要求保持安全。 最佳答案 endl向流中写入一个换行符,因此后续输出将出现在下一行。它还会刷新流的缓冲区,通常是causingaslow-down.这种刷新意味着99%的时间,endl是一个错误,你应该只写"\n"(或'\n')代替。当您确实想要刷新流时,我认为最好通过调用std::flush来明确说明:std::cout就运行时操作而言,这等同于使用std::endl,但就明确您的意图而言,它

c++ - 为指针格式化 cout

我想将这些C代码转换为C++代码。关于指针printfintn=44;//printf("n=%d\t&n=%x\n",n,&n);cout当我运行printf输出时是这样的:n=44&n=22ff1c但是当我运行cout输出时是这样的:n=44&n=22ff0c为什么两个版本输出的地址n的值不同? 最佳答案 编译器恰好将堆栈分配的变量放在不同版本程序中的不同位置。尝试在同一程序中包含printf和cout版本,以便它们使用完全相同的指针。然后您会看到这两个版本的行为方式相同。intn=44;printf("n=%d\t&n=%x\

请C++ cout输出解释

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:whyisinitializinganintegerinVC++to010differentfrominitialisingitto10?这让我很困惑,我希望你们中的一个能回答我的问题。为什么这段代码会产生输出“116”?#includeintmain(){std::cout代码已在MacOSX下使用MSVC++2010和g++编译。“cout”可以单独打印“0”和“164”,但只要“0”是数字中的第一个数字,输出就会改变。

c++ - + 运算符在 cout 中做什么?

在下面的代码中,我感到困惑并在应该是的地方添加了一个+#include#include"Ship.h"usingnamespacestd;intmain(){cout应该是cout输出的错误代码:Helloworld!Stillgoodos::clear我不明白的是为什么编译器没有捕获到任何错误以及os::clear是什么意思?还有,为什么“someLetter:”不在行首? 最佳答案 在这里,"someLetter:"是一个字符串文字,即constchar*指针,通常指向存储所有字符串文字的只读内存区域。someLetter是ch