草庐IT

prinf-cout

全部标签

c++ - 在一行中读取文件并写入 cout

有什么方法可以在一行中执行这两个操作:fscanf(fp,"%d",&n);std::cout也就是说,我正在寻找类似的东西:std::cout显然&n必须更换。FILE*但是必须使用。 最佳答案 是的,可以使用,运算符内联调用fscanf():#includeintmain(){intn=0;std::cout查看现场演示here.对于目前的示例,没有太多好的用例,但我认为至少有一个可以保存格式的可读性:假设你有一个类型T,提供了一个像voidT::update();这样的操作,而你懒得包装对T的调用::update()变成像st

c++ - 在 C++ 中什么时候使用 cerr 什么时候使用 cout?

我正在寻找一个区分C++中的cerr和cout的示例?什么时候需要使用cerr? 最佳答案 许多操作系统允许您重定向文件的输入和输出。当最终用户将您的输出重定向到一个文件时,最终用户看不到您写入cout的任何内容;如果您希望最终用户看到您的输出,您需要一个单独的流来为他们打印消息。假设您正在编写一个程序,逐行读取标准输入,并将这些行按排序顺序写入标准输出。假设您的程序采用一个命令行参数,该参数说明输出是否需要按升序或降序排序。如果最终用户为此参数传递了一个无效值,您需要向控制台打印一条消息"Invalidflag"。将它打印到cou

c++ - C++标准是否保证cin、cout等先创建后销毁?

cin、cout、基本流相关-是否在标准中的任何地方保证这些对象将首先创建并最后销毁?这意味着非本地静态对象可以在它们的构造函数和析构函数中依赖它们(这些对象和基本流之间没有构造函数竞争)。 最佳答案 它们保证在包含之后声明的任何静态对象之前创建无论如何,在开始之前main.它们在程序执行期间不会被销毁。包含header具有声明类型为ios_base::Init的静态变量的效果,其创建确保标准流被初始化。如果你想要标准语:C++1127.4.1[iostream.objects.overview]/2:Theobjectsareco

c++ - 输出到字符串的 cout 等价物是什么?

我应该已经知道了,但是...printf是sprintf就像cout是____?请举个例子。 最佳答案 听起来您正在寻找std::ostringstream.当然,C++流不使用格式说明符,例如C的printf()类型的函数;他们使用manipulators.示例,根据要求:#include#include#includestd::stringstringify(doublex,size_tprecision){std::ostringstreamo;o 关于c++-输出到字符串的cou

c++ - 将 std::cout 的拷贝重定向到文件

我需要将std::cout的拷贝重定向到文件。IE。我需要在控制台和文件中查看输出。如果我使用这个://redirectingcout'soutput#include#includeusingnamespacestd;intmain(){streambuf*psbuf,*backup;ofstreamfilestr;filestr.open("c:\\temp\\test.txt");backup=cout.rdbuf();//backupcout'sstreambufpsbuf=filestr.rdbuf();//getfile'sstreambufcout.rdbuf(psbuf)

c++ - 如何通过 JNI/NDK 获取 Android 应用程序中使用的 C++ 库的日志行(printf、cout 等)的控制台输出

在我的Android应用程序中,我通过JNI使用nativeC++库。如果它在Debug模式下构建,该库会生成日志行。我想将日志行重定向到logcat。所以我在Debug模式下创建了库,NDK_DEBUG=1被使用并且LOCAL_LDLIBS+=-llog已设置。我的设备没有root但我设置了:$adbshell停止$adbshellsetproplog.redirect-stdiotrue$adbshell启动就像在http://developer.android.com/tools/debugging/debugging-log.html#viewingStd中描述的那样在这里Is

c++ - 多线程同步STD cout输出

最近我一直在使用多线程编码,写了一段时间后我意识到如果我在不同的boost::threads中使用std::cout,输出将没有逻辑顺序,我的程序m测试是这样的:#include#includeintmy01(void){std::cout输出通常是这样的(它会改变):my02my01my04my03BLANKLINETheend!考虑到这个问题,我正在考虑创建一个线程来管理所有输出,因此它们的顺序如下:my01my02my03my04Theend!编写此类线程或管理这些输出的最佳方式是什么?请也阅读此问题的答案:Iscoutsynchronized/thread-safe?Ps:我使

C++ cout在for循环中覆盖自身

这个for循环中的cout语句:for(vector::iteratorqw=students.begin();qw!=students.end();++qw){Studenta=*qw;name=a.getName();regno=a.getRegNo();std::cout正在创建一些奇怪的行为,cout应该打印的是这样的:Name:MikeSandersonRegNumber:10101不管它实际打印出来的是什么:RegNumber:10101on在我看来,在cout语句的第二部分之后,它会回到行首并覆盖自身,但为什么呢?希望你们能帮助我,如果您需要更多信息,请告诉我!

C++:cout语句是否会使代码变慢

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我正在从一个文件中读取大约300万行并将它们插入到STL映射中。因此,在我从文件中读取每一行的while循环中,我还通过一个简单的cout语句打印以控制它的行号。我的一位friend最近指出,这会使代码变慢。我想知道这是不是真的,如果是为什么?

c++ - 如果 cout.rdbuf() 用于切换缓冲区并且从不将其设置回去,会出现什么问题?

作者介绍thiscode在标题Abuserroronmyplatform下#include#includeintmain(){std::ofstreamlog("oops.log");std::cout.rdbuf(log.rdbuf());std::cout字符串“Oops!\n”被打印到文件“oops.log”。代码没有恢复cout的streambuf,但是VS2010没有报运行时错误。 最佳答案 由于log和std::cout共享一个缓冲区,该缓冲区可能会被释放两次(一次是在log超出范围时,然后在程序终止时再一次)。这会导致