草庐IT

prinf-cout

全部标签

c++ format cout with "right"and setw() for a string and float

我正在尝试格式化一个“cout”,它必须显示如下内容:Result$34.45金额($34.45)必须在右侧索引上,并带有一定数量的填充或在特定列位置结束。我尝试使用cout但是,它是为“$”字符串设置宽度,而不是为字符串加金额设置宽度。关于处理此类格式有什么建议吗? 最佳答案 您需要将"$"和值34.45组合成单独的字符串。像这样尝试:#include#include#include#includeusingnamespacestd;intmain(){stringstreamss;ss

C++:有没有什么好的读/写方法而不用在函数名中特别说明字符类型? (cout 与 wcout 等)

我在让程序根据模板从文件中读取时遇到问题,例如:boolparse(basic_ifstream&file){Tch;localeloc=file.getloc();basic_stringbuf;file.unsetf(ios_base::skipws);if(file.is_open()){while(file>>ch){if(isalnum(ch,loc)){buf+=ch;}elseif(!buf.empty()){addWord(buf);buf.clear();}}if(!buf.empty()){addWord(buf);}returntrue;}returnfalse;

c++ - cout、cerr、clog的rdbuf改成重定向到文件后,是否需要重新设置?

在试图弄清楚如何回答https://stackoverflow.com/questions/33601384/what-is-the-file-descriptor-of-linuxs-environments-standard-logging-stream时,我注意到一个链接ananswertoarelatedSOpost.我用g++4.8.4尝试了上面链接答案中的代码,但在程序终止之前出现了段错误。程序如下:#include#includeintmain(){std::ofstreamof("cout.txt");std::cout.rdbuf(of.rdbuf());std::c

c++ - 为什么我的 cout 语句在打开文本文件后不打印?

我正在尝试编写一个程序,我在其中读取文本文件,然后获取文本文件中的每一行并将它们存储在字符串vector中。我想我可以打开文本文件,但是我注意到在我打开文本文件之后,该点之后的任何内容都不会执行。例如,当我输入一个不存在的文件名时,我的main函数末尾有一个cout语句输出。但是,如果我输入一个确实存在的文件名,我从最后一个cout语句中得不到任何输出。有谁知道这是为什么?谢谢!intmain(){vectorline;stringfileName="test.txt";ifstreammyFile(fileName.c_str());inti=0;intcount=0;vectorl

c++ - 在 std::cout 中递增变量时指针不显示更新值

这个问题在这里已经有了答案:Orderofevaluationofargumentsusingstd::cout(5个答案)Strangeoutput,notasexpected(2个答案)Undefinedbehaviorandsequencepoints(5个答案)关闭5年前。#include#includeusingnamespacestd;intmain(){inta=5;int&b=a;int*c=&a;cout输出:案例1:ais5.bis5.cis5.ais10.bis10.cis10.案例2:ais5.bis5.cis5.ais11.bis11.cis10.案例3:ai

c++ - 我应该如何正确地将 cout 分配给静态 ostream 引用变量?

我正在定义这样一个类:classStaticRuntimeContext{public:enumVerbosity{kHIGH,kMEDIUM,kLOW,kSILENT};staticvoidConstruct();staticstd::ostream&stdout1(){returnstdout1_;}staticstd::ostream&stdout2(){returnstdout2_;}staticstd::ostream&stdout3(){returnstdout3_;}staticstd::ostream&stderr(){returnstderr_;}protected:

c++ - 有谁知道 endl(cout) 和 cout << endl 之间的区别?

我以为它们是同一回事,但是当我向在线法官发送代码时(使用endl(cout))它给了我“错误答案”的判决,然后我尝试发送另一个使用cout的代码法官接受了密码!有谁知道这些命令之间的区别? 最佳答案 据我所知没有。std::endl是一个接受流并返回流的函数:ostream&endl(ostream&os);当您将它应用于std::cout时,它只是立即应用该功能。另一方面,std::basic_ostream过载operator签名:templatebasic_ostream&operator&(*pf)(basic_ostrea

c++ - 为什么我不能进入GDB 中的C++ cout 标准库函数?

我写了一个简单的test.cc如下:#includeusingnamespacestd;intmain(){cout然后我编译了:g++-gtest.cc-otest.o我运行了gdb并在"Helloworld"行放置了一个断点:$gdbtest.o(gdb)b7(gdb)c然后gdb停在"Helloworld"行,但是当我运行时(gdb)s它无法进入cout函数。所以我的问题是,如何进入cout函数? 最佳答案 如果它没有链接到带有调试信息的标准库版本,它不知道如何进入库;它只能越过它(也就是说,运行直到控制权返回到带有调试信息的

c++ - Cout 不会在 while 循环中打印没有 endl 的文本?

不知道是不是和ostream中的flush有关。因为,endl以flush结束,对吗?我不知道什么是同花顺以及它是如何工作的。我有一个函数可以每秒打印出字符串的每个字符。我想在每个字符后打印出新行。然后,我编写这个函数:usingnamespacestd;voidprint_char_per_second(stringtext){inti=0;intlen=static_cast(text.length());while(i它在while循环完成循环后打印文本,并一次打印文本中的所有字符。为什么会这样? 最佳答案 刷新确保到目前为止

c++ - 为什么 cout.setf(ios::fixed) 将我的 float 更改为十六进制?

我最近遇到了这个与cout.setf(ios::fixed)有关的奇怪问题。我花了很长时间才找到原因,我想我会在这里询问以了解更多信息。问题在于-使用cout.setf(ios::fixed)时,所有float都打印为十六进制数。为什么会这样?ios::base的文档似乎并不暗示这会发生(至少对我而言)。我使用的是g++5.3.0,下面粘贴的是一个最小示例和输出。#include#includeusingnamespacestd;intmain(intargc,charconst*argv[]){complexI(0.0,1.0);doublepi=M_PI;cout.setf(ios