草庐IT

打印室

全部标签

c++ - 为什么在打印某些内容时不保留顺序,首先使用 cerr 然后使用 cout?

我有g++版本4.8.4编译器和Xubuntu14.04。在我的OpenCV代码(用EclipseCDT编写)中,我连续写了以下三行:/*Somecodeshere*/cerr结果如下:Pressakeytocontinue...Nomatchfound.#offalsepositives:1/*thereisablankline*/为什么这两行的顺序在执行时改变了?前面几行中根本没有并行代码,但它们似乎(同时)并行工作。我知道cerr没有缓冲,而cout有缓冲(这意味着,afaik,cerr比cout慢);但是,不管怎样,执行的顺序不应该改变一下吗?那个空行是从哪里来的?(可能来自其

c++ - 打印二维 std::string 数组

我正在尝试用C++初始化一个井字棋盘,但输出总是给我六进制值。有没有办法将它们转换为实际的字符串值?#include#includeusingnamespacestd;intmain(){stringtab[5][5]={"1","|","2","|","3","-","+","-","+","-","4","|","5","|","6","-","+","-","+","-","7","|","8","|","9"};for(inti=0;i 最佳答案 您正在将tab[i]的值发送到cout,因此您将获得内存地址。您可能希望将项目

c++ - 打印任意 C++ 表达式的类型

我有兴趣编写一个用于教学目的的工具来计算C++表达式并打印它们的类型。本质上,我的想法是我的学生可以输入任何表达式,程序会回显表达式的类型。是否有现有工具可以执行此操作?如果没有,是否有一种非常简单的方法可以通过与现有编译器集成并调用其调试器或API来实现?例如,有人告诉我,Clang有一个相当完整的编译器API,也许有一些方法可以将字符串连同适当的include指令一起传递到Clang并让它吐出一个类型?我意识到,如果目前还没有类似的项目,这可能是一个巨大的项目。我只是认为它具有重要的教育值(value),所以它似乎值得一试。 最佳答案

c++ - 为什么我使用getline时cout打印了两次?

我正在尝试使用getline读取一串文本。出于某种原因,它会打印两次“请输入您的选择”:PleaseenteryourselectionPleaseenteryourselection如果我键入无效文本,它会再次循环,此后每次循环只打印一次。while(valid==false){cout有人知道为什么会发生这种情况吗?谢谢 最佳答案 可能当您进入循环时,输入缓冲区中仍有来自上一个操作的内容。它被getline拾取,发现无效,然后循环再次运行。举例来说,假设在进入循环之前,您读取了一个字符。但是,在cooked模式下,您需要输入字符

c++ - 在 gdb 上漂亮地打印 boost::unordered_map

最近我开始在我的系统上使用优秀的boost::unordered_map,但有一个缺点:我不知道如何检查它的内容。在gdb上打印它给了我一个table_和一个buckets_,但还没有找到项目在哪里。有人知道这件事吗? 最佳答案 对于那些想要打印机的人,我已经设法制造了一台。这是代码:classBoostUnorderedMapPrinter:"printsaboost::unordered_map"class_iterator:def__init__(self,fields):type_1=fields.val.type.temp

c++ - 如何让 "std::cout << 123456789.12"打印 "123456789.12"?

如何制作std::cout打印这个:123456789.12它总是打印这个:1.23457e+008我知道我必须玩旗帜,但我不太清楚正确的组合。如果我设置固定标志,它会打印123456789.120000 最佳答案 如何......?一种方式:-#include#includeintmain(){doublef=123456789.12;std::cout参见here请寻找合适的引用资料 关于c++-如何让"std::cout https://stackoverflow.c

c++ - 使用迭代器打印出集合的每个成员

我正在尝试使用迭代器打印出集合中的每个成员。据我从其他stackoverflow答案中可以看出,我的格式正确。当我运行这段代码时,它正确地输出了myset的大小为3,但它只输出了ii一次。如果我用*iter取消注释该行,VisualStudio会抛出一个运行时异常,指出“map/set迭代器不可取消引用。知道为什么吗?intmain(){setmyset;myset.insert(5);myset.insert(6);myset.insert(7);set::iteratoriter;cout 最佳答案 你有一个额外的;在这一行:f

c++ - 使用 <iostream> 打印指针

这个问题在这里已经有了答案:cout(6个答案)关闭5年前。为什么#includeusingnamespacestd;intmain(){cout段错误,但是#includeusingnamespacestd;intmain(){cout似乎工作得很好?

c++ - 如何在 C++11 中以毫秒为单位打印当前系统时间?

我在获取以毫秒为单位的实际系统时间时遇到了问题。我发现的唯一一个好方法是在Windows.h中,但我不能使用它。我应该使用std::chrono。我该怎么做?我花了很多时间尝试用谷歌搜索它,但我只找到了二精度的例子。我正在尝试获取这样的字符串:[2014-11-2522:15:38:449] 最佳答案 使用thisanswer中的代码:#include#include#includetemplatevoidprint_time(tmt,Durationfraction){usingnamespacestd::chrono;std::

c++ - 二叉树 - 根据级别打印元素

这个问题是在面试中问我的:假设我们有上面的二叉树,我怎样才能产生如下所示的输出2752695114我的回答可能是我们可以有一个级别计数变量,并通过检查每个节点的级别计数变量按顺序打印所有元素。可能我错了。谁能告诉我们如何才能做到这一点? 最佳答案 您需要对树进行广度优先遍历。Here描述如下:Breadth-firsttraversal:Depth-firstisnottheonlywaytogothroughtheelementsofatree.Anotherwayistogothroughthemlevel-by-level.F