在C++中,有#defineDEBUG(A)cerr我可以向它发送任何东西,它可以打印它。但是,在C中,我必须用%d、%c或%s等指定它的类型。但我不想一直写它的类型,我想像一样使用fprintfcerr。我该怎么做?例如:在C中#defineDEBUG(A)X//XiswhatIwanttowrite...//infunction,whenIputDEBUG(5);//Ijustwanttoprint5//or,withsamestatement,whenIsayDEBUG('a');//output:a 最佳答案 您可以使用GN
它们之间有什么区别以及它们是如何使用的?谁能指点我的例子?具体来说,在这两种情况下,您如何“写入”到流中,以及如何恢复和输出(即到屏幕上)已写入其中的文本?另外,“屏幕”输出本身就是一个流,对吧?也许我对流的理解不够好。当然,这也可以保存到文件中,我知道。所有这些都会使用fprintf/fscanf等吗? 最佳答案 cerr是C++流,stderr是C文件句柄,都代表标准错误输出。您写入它们的方式与写入其他流和文件句柄的方式相同:cerr我不确定在这种情况下您所说的“恢复”是什么意思,输出进入标准错误,仅此而已。在那之后,该程序并不
我尝试在互联网上研究cout、cerr和clog之间的区别,但找不到完美的答案。我仍然不清楚何时使用哪个。谁能通过简单的程序向我解释并说明何时使用哪一个的完美情况?我访问了thissite其中在cerr和clog上显示了一个小程序,但是那里得到的输出也可以使用cout得到。所以,我对每个人的确切用途感到困惑。 最佳答案 通常你使用std::cout来进行正常输出,std::cerr来处理错误,std::clog来处理“日志”"(可以表示任何你想要的意思)。主要区别在于std::cerr不像其他两个那样缓冲。相对于旧的Cstdout和
cout、cin、cerr和clog名称中的“c”是什么意思?我会说char但我没有找到任何可以确认的东西。 最佳答案 The"c"standsfor"character"becauseiostreamsmapvaluestoandfrombyte(char)representations.[BjarneStroustrup'sC++StyleandTechniqueFAQ] 关于c++-cout、cin、cerr和clog中的"c"是什么意思?,我们在StackOverflow上找到一
cout、cin、cerr和clog名称中的“c”是什么意思?我会说char但我没有找到任何可以确认的东西。 最佳答案 The"c"standsfor"character"becauseiostreamsmapvaluestoandfrombyte(char)representations.[BjarneStroustrup'sC++StyleandTechniqueFAQ] 关于c++-cout、cin、cerr和clog中的"c"是什么意思?,我们在StackOverflow上找到一
我一直在想,堵塞有什么意义?据我所知,clog与cerr相同,但具有缓冲功能,因此效率更高。通常stderr和stdout一样,所以clog和cout一样。这对我来说似乎很蹩脚,所以我想我一定是误解了它。如果我有日志消息发送到同一个地方,我有错误消息发送到(可能是/var/log/messages中的某些内容),那么我可能不会写太多(因此使用non不会丢失太多-缓冲cerr)。以我的经验,我希望我的日志消息是最新的(不缓冲),这样我可以帮助找到崩溃(所以我不想使用缓冲的阻塞)。显然我应该一直使用cerr。我希望能够在我的程序中重定向堵塞。重定向cerr会很有用,这样当我调用库例程时,我
我一直在想,堵塞有什么意义?据我所知,clog与cerr相同,但具有缓冲功能,因此效率更高。通常stderr和stdout一样,所以clog和cout一样。这对我来说似乎很蹩脚,所以我想我一定是误解了它。如果我有日志消息发送到同一个地方,我有错误消息发送到(可能是/var/log/messages中的某些内容),那么我可能不会写太多(因此使用non不会丢失太多-缓冲cerr)。以我的经验,我希望我的日志消息是最新的(不缓冲),这样我可以帮助找到崩溃(所以我不想使用缓冲的阻塞)。显然我应该一直使用cerr。我希望能够在我的程序中重定向堵塞。重定向cerr会很有用,这样当我调用库例程时,我