草庐IT

prinf-cout

全部标签

c++ - 为什么 Qt Creator 在 cout.flush() 调用后添加一个换行符?

代码简单#include#includeusingnamespacestd;intmain(){for(inti=0;i在.pro文件中QT+=coreTARGET=ProjectNamegreaterThan(QT_MAJOR_VERSION,4):QT+=widgetsTEMPLATE=app如果输出进入QtCreator“应用程序输出”(默认情况下源代码位置下的位置),每个“1”从一个新行开始。如果我在Ubuntu终端中使用g++编译并执行单独的*.cpp文件,它会以正确的方式工作。如果我在QtCreator中创建一个新项目并且输出进入QtCreator控制台(黑色背景的新窗口)

c++ - GCC/g++ cout << 与 printf()

为什么printf("helloworld")最终在汇编代码中使用了比cout更多的CPU指令(不考虑使用的标准库)?对于C++,我们有:movl$.LC0,%esimovl$_ZSt4cout,%edicall_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc对于C:movl$.LC0,%eaxmovq%rax,%rdimovl$0,%eaxcallprintfC++代码中的第2行和C代码中的第2,3行有什么用?我正在使用gcc4.5.2版 最佳答案 对于Linuxx86

c++ - 如何在没有科学计数法或尾随零的情况下将 float 输出到 cout?

在C++中输出没有科学记数法或尾随零的float的最优雅方法是什么?floata=0.000001f;floatb=0.1f;cout 最佳答案 我不确定“最优雅的方式”,但这是一种方式。#include#include#includeusingnamespacestd;stringfix(floatx,intp){ostringstreamstrout;strout你也许可以createyourownI/Omanipulator如果您需要大量此类输出。这可以说更优雅,但实现可能类似。

c++ - 如何方便地在 C++ cout 中集中对齐数字

我将以下矩阵存储在c++中的int[][]中(抱歉,我没有将所有逗号放入):int[8][]a={12345678282930313233349274849505152351026476061625336112546596463543712244558575655381323444342414039142221201918171615};而且我需要将其打印出来,每个数字都与其他数字很好地对齐。如何方便地做到这一点?我已经使用过setw,但它似乎只会导致输出右对齐。谢谢。编辑可能是我没说清楚。对于那个很抱歉。我希望输出类似于:123456782281291301313233349假设我有

C++: 'cout << pointer <<++pointer' 生成编译器警告

我这里有一个C++学习demo:charc='M';shorts=10;longl=1002;char*cptr=&c;short*sptr=&s;long*lptr=&l;cout(cptr)(++cptr)(cptr)(++cptr)编译器警告:谁能给我解释一下?如何解决? 最佳答案 SinceC++17thecodeiscorrect.PriortoC++17的操作数评估链是未排序的,因此代码导致了未定义的行为。编译器警告表明您没有在C++17模式下编译。要修复它,您可以:在C++17模式下编译,或者将分开链成多个cout没有

c++ - 调用 flush cout 无效

我试图让cout缓冲区刷新,以便在我操作它之前查看一个字符串。我试图通过调用std::flush()和std::cout.flush()来刷新缓冲区,但实际上都没有刷新我的输出。只有调用std::endl才能为我成功刷新缓冲区。这是我的代码std::istringstreamstm(game.date());intday,month,year;chardelim='/';std::cout>month>>delim;stm>>day>>delim;stm>>year>>delim;std::cout这是我的输出日期之后:|2013年1月31日日期之后:|2012年3月21日日期之后:|

c++ - 你能以类似于 std::cout 的方式创建一个字符串吗?

以下语句将所有类型的输出作为单个文本字符串通过管道传输到控制台std::cout我们可以使用相同的语法在字符串变量中构建字符串吗?它是怎么做到的? 最佳答案 #includestd::ostringstreamss;ss您还可以将std::istringstream用于多输入,将std::stringstream用于输入和输出。std::stringstr="12345";std::istringstreamss(str);inti;while(ss>>i){std::cout 关于c+

C++ 演练 cout.setf(ios::fixed);和 cout.precision();

/*Problem38*/#includeusingnamespacestd;classabc{doublen;public:abc(){n=67.5;cout100)n=100;elsen=num;cout对于上面的代码,我只是想知道下面两行在上面的代码中到底做了什么cout.setf(ios::fixed);cout.precision(3);请不要只给我答案,我将不胜感激,因为我正在做一个演练,为明天的期末考试做准备。我搜索了一下,一些消息来源说这是设置标志,但实际上我不明白它的概念是什么以及它是如何工作的 最佳答案 cout

C++ cout打印缓慢

我注意到,如果我使用cout打印出一个长字符串(char*),它似乎在Windows7、Vista和Linux(使用腻子)中使用Windows和G++上的VisualC++2008一次打印1个字符到屏幕在Linux上。Printf快得多,我实际上从cout切换到printf来进行我的一个项目中的大多数打印。这让我感到困惑,因为这question看起来好像只有我一个人遇到这个问题。我什至写了一个cout替代品,看起来它在我的comp上击败了cout的裤子-classrcout{public:charbuff[4096];unsignedintsize;unsignedintlength;

为 cout 取消引用指针时的 C++ SegFault

我是C++的新手,只是想掌握它的窍门。它通常看起来还不错,但我偶然发现了这种奇怪/病态的段错误行为:intmain(){int*b;*b=27;intc=*b;cout这个程序,如给定的,产生你所期望的:cpointsto27bpointsto27另一方面,如果您取消对倒数第二行的注释,您会得到一个在运行时崩溃(段错误)的程序。为什么?这是一个有效的指针。 最佳答案 int*b指向一个未知的内存地址,因为它没有被初始化。如果您将其初始化为编译器存在的任何空指针值(0直到C++11,nullptr在C++11和更新版本中),您肯定会早