草庐IT

prinf-cout

全部标签

c++ - std::cout << std::cin 做什么?

我是C++的新手,并且正在搞乱我学到的一些东西。所以我尝试了以下代码:#includeintmain(){std::cout所以我预计代码会返回错误,但得到的却是我认为的内存地址(0x6fccc408)。此外,当多次运行它时,我得到了相同的内存地址,即使在重新启动cmd之后也是如此。这个内存地址到底意味着什么? 最佳答案 看起来您使用的是C++98或C++03。在那些版本中,cin可以隐式转换为void*所以你看到的是这种转换。如果您使用C++11,它摆脱了隐式void*转换,而是实现了显式转换为bool,这将产生类似的编译器错误c

c++ - "<<"和 ">>"在 C++ 中对于 cout/cin 意味着什么?

请原谅我可能提出了一个相当简单的问题,但是插入运算符在程序中的实际含义和作用是什么?(例如cout/cin>>) 最佳答案 这取决于你如何为你的类(class)重载它。如果是std::cout,用于写入标准输出。>>没有为std::cout重载.所以std::cout>>x会报编译错误。如果是std::cin,>>用于从标准输入读取。没有为std::cin重载.所以std::cin会报编译错误。对于您的自定义类,您可以重载或>>,或两者兼而有之,并且在函数中你可以做任何你喜欢的事情。例如,在下面的代码中,我重载了对于std::vec

c++ - 在 Visual Studio 2005 输出窗口中捕获 cout?

我创建了一个C++控制台应用程序,只想在VisualStudio2005IDE的输出窗口中捕获cout/cerr语句。我确定这只是我缺少的设置。谁能指出我正确的方向? 最佳答案 我终于实现了,所以想和大家分享一下:#include#include#include#include#includeusingnamespacestd;namespaceio=boost::iostreams;structDebugSink{typedefcharchar_type;typedefio::sink_tagcategory;std::vecto

C++ 即时启用/禁用 std::couts 的调试消息

有没有办法在程序内部使用std::cout定义/取消定义调试消息?我知道有诸如#define、#ifndef之类的东西,但我在想有没有更简洁的方法来让变量说:#debugON打印我所有的调试数据(使用std::cout)。因此,我们将有这样的代码进行调试:#ifndefDEBUG//dosomethinguseful#endif当您编写100段调试代码时,我发现上面的代码很麻烦。谢谢!卡洛 最佳答案 #ifdefDEBUG#defineDEBUG_MSG(str)do{std::cout

c++ - 使用std::cout时如何模拟printf的%p格式?

unsignedchar*teta=....;...printf("dataat%p\n",teta);//prints0xXXXXXXXX如何使用iostream打印变量地址年代?有没有std::???像std::hex这样的功能做这种转换(地址->字符串),所以std::cout会打印那个地址吗?(请不要使用sprintf;)) 最佳答案 转换为void*:unsignedchar*teta=....;std::cout(teta)iostreams通常假定您有一个带有任何char*指针的字符串,但void*指针就是这样-一个地

c++ - 正确使用 std::cout.precision() - 不打印尾随零

我看到很多关于float精度数的问题,但我特别想知道为什么这个代码#include#includeintmain(){inta=5;intb=10;std::cout.precision(4);std::cout显示0.5?我希望看到0.5000。是不是因为原来的整数数据类型? 最佳答案 #include#include#includeintmain(){inta=5;intb=10;std::cout您需要将std::fixed操纵器传递给cout以显示尾随零。 关于c++-正确使用s

c++ - cout <<字符串流

当我将某些东西放入字符串流时,假设是一个实数,如果我随后将该字符串流对象插入cout...我在看什么?通常我会收到一些奇怪的数字。这是一个内存位置吗?只是好奇。看起来下面的评论很成功,但这是我想要做的:stringstringIn;stringstreamholdBuff;holdBuff基本上,我只是想看看插入stringIn后的holdBuff是什么样子。我试图让用户输入一个字符串,然后我想逐步通过它寻找它的内容并可能转换...... 最佳答案 你怎么看holdBuff正在做。getline的返回类型是对流的引用在这种情况下被读

c++ - 重定向 std::cout

我需要一个在其对象的生命周期内将一个ostream重定向到另一个ostream的类。经过一番修补,我想出了这个:#include#includeclassScopedRedirect{public:ScopedRedirect(std::ostream&inOriginal,std::ostream&inRedirect):mOriginal(inOriginal),mRedirect(inRedirect){mOriginal.rdbuf(mRedirect.rdbuf(mOriginal.rdbuf()));}~ScopedRedirect(){mOriginal.rdbuf(mR

c++ - 倒带 std::cout 以回到行首

我正在为MacOSX编写一个用于处理一堆文件的命令行工具。我想向用户显示当前正在处理的文件,但不希望大量文件污染终端窗口。相反,我想使用一行来输出文件路径,然后将该行重用于下一个文件。是否有要输出到std::cout的字符(或其他代码)来完成此操作?另外,如果我想将此工具重新定位到Windows,两个平台的解决方案是否相同? 最佳答案 "\r"应该适用于windows和MacOSX。类似:std::cout 关于c++-倒带std::cout以回到行首,我们在StackOverflow上

c++ - cout << 1 && 0; 的输出

我不明白为什么下面的代码会打印1。1&&0和true&&false不一样->false?为什么不打印0?#includeusingnamespacestd;intmain(){cout 最佳答案 一切都是关于OperatorPrecedence.重载的按位左移运算符operator具有比逻辑与运算符&&更高的优先级.#includeintmain(){std::cout如果您不能146%确定运算符的优先级,请不要犹豫使用括号。大多数现代IDE会告诉您是否不需要使用它们。 关于c++-co