jjzjj

libboost_iostreams

全部标签

笔记25:头文件<iostream>和<cstdio>有什么区别

C++中的  和  是两个不同的头文件一.关于头文件(1)是C++标准库中用于输入和输出流操作的头文件(2)它包含了cin和cout等流对象,用于标准输入和标准输出,通常用于C++中的高级输入和输出,例如从键盘读取用户输入和将数据输出到屏幕(3)示例用法:#includeusingnamespacestd;intmain(){intx;cout>x;cout二.关于头文件(1)是C标准库中用于C风格的输入和输出操作的头文件(2)它包含了printf和scanf等函数,用于格式化的输入和输出,虽然可以在C++中使用中的函数,但通常不推荐,因为C++提供了更安全和类型安全的替代方法,如中的流对象(

c++ - 如何实现作用域 iostream 格式化?

我想在C++中限制I/O流格式化的影响,这样我就可以做这样的事情:std::cout以便在离开block时将基数、精度、填充等恢复到它们以前的值。这是我想到的最好的:#includeclassscoped_iofmt{std::ios&io_;//Thetruestreamweshadowstd::iosdummy_;//Dummystreamtoholdformatinformationpublic:explicitscoped_iofmt(std::ios&io):io_(io),dummy_(0){dummy_.copyfmt(io_);}~scoped_iofmt(){try{

c++ - 是否有用于阻塞 boost::asio TCP 连接的 boost::iostreams(双向)设备?

我正在研究可移植的C++库,阻止对文件系统和网络的I/O访问。看起来boost::filesystem、boost::iostreams和boost::asio将介于这三者之间他们的工作。明确地说,我目前对boost::asio的异步方面不感兴趣;我只想要一个可移植的阻塞式网络接口(interface)。深入研究,我看到boost::iostreams有一个设备的概念,每个设备都有一个关联的modeconcept.双向模式似乎专门为流式访问全双工TCP连接而量身定制。太棒了。boost::iostreams似乎不支持实际打开TCP连接(与本地文件系统不同。)没关系,boost::asi

c++ - Windows 和 OSX 之间 iostream 控制台输出的性能差异?

给定以下非常简单的for循环:intmain(void){for(inti=0;i使用Microsoftvisualstudio2012在干净的Windows8专业版上运行此代码每100k次打印大约需要15秒。在macosx上,使用同一台计算机,xcode仅需3秒即可输出1条铣线。我几乎100%确定它与性能无关,它只是与输出机制或其他相关的东西。有人可以证实这一点吗?只是想知道我的window和VisualStudio都很好。 最佳答案 这取决于外部因素。就像正在使用的终端应用程序。例如,在OSX和Linux上,您可以绕过终端并使用

c++ - iostreams 操纵器顺序

我不理解以下表达式中的逻辑,尽管它工作得很好:cout前面的代码正确输出了我所期望的:你好。我的逻辑是:cout但它输出了一些意想不到的东西:hellothere.我的期望是“there”的第一个字符“t”位于输出区域的第7列,即6列宽度之后。换句话说,我的概念是“leftsetw(n)”应该表示“从输出区域的第一列开始的n列(空格)”,就像一些带有编号列的数据形式,以便于查找数据。你能解释一下吗? 最佳答案 setwiostreams操纵符适用于输出的下一个项目,并且仅适用于该项目。因此,在第一个片段中,“hello”被修改为“l

c++ - iostream 的问题

我正在使用MinGW在Windows上运行g++编译器。每当我运行以下代码时,编译器都会给出奇怪的结果。代码:#include#includeusingnamespacestd;intmain(){intn;stringa;cin>>n;getline(cin,a);cout编译代码时没有出现问题。但是一旦我运行代码并为n提供输入,它就不会要求输入a并结束。我正在使用MinGW5.1.6,这有什么问题吗?或者我的代码有什么问题吗? 最佳答案 问题出在您的代码中。简而言之,您键入用于提交n数字的换行符仍存储在输入缓冲区中,因为它不是数

c++ - 将数据从 C++ 传递到 gnuplot 示例(使用 Gnuplot-iostream 接口(interface))

我刚刚接触到DanStahlke的gnuplotC++I/O接口(interface),它使我免于“自己动手”。不幸的是,没有太多示例,也没有真正的文档。我的C++项目中有以下数据类型:structData{std::stringdatestr;//xaxisvaluefloatf1;//yaxisseries1floatf2;//yaxisseries2floatf3;//yaxisseries3};typedefstd::vectorDataset;我想从C++传递一个Dataset变量,这样我就可以绘制数据(X轴上的日期,以及Y轴上绘制为时间序列的3个数字)。谁能告诉我如何将Da

c++ - 有没有一种 C++ 方法可以使用 iostream 来格式化地址和指针?

我有类似的东西unsignedx=16;unsigned*p=&x;std::cout输出:0000000000000010000x7fffc35ba784ostream::operator 最佳答案 像这样使用internal:#include#includeintmain(){unsignedx=16;unsigned*p=&x;std::cout这给出:0000000000000010000x7fffd123c1a40x007fffd123c1a4 关于c++-有没有一种C++方法

c++ - python sys.stdout 和 C++ iostreams::cout

我假设sys.stdout将引用与在同一进程中运行的iostreams::cout相同的物理流,但事实似乎并非如此。以下代码使用名为“write”的python包装器调用C++函数,该函数写入cout:fromcStringIOimportStringIOimportsysorig_stdout=sys.stdoutsys.stdout=stringout=StringIO()write("cout")#wrappedC++functionthatwritestocoutprint"-"*40print"stdout"sys.stdout=orig_stdoutprintstringo

c++ - 为什么我们需要在编译期间包含 C 或 CPP 声明文件而不是像 iostream 这样的默认库?

如果C或CPP程序需要使用我们自己的带有声明的头文件和带有定义的cpp文件进行编译,我们需要在编译命令中包含带有定义的cpp文件(参见thisanswer)。但是,当我们写#include,我们不包括iostream.cpp在类似g++main.cppiostream.cpp-omain的编译语句中.如果我们编写自定义声明文件,例如hello.hpp带有类声明和hello.cpp有了定义,我们需要使用g++main.cpphello.cpp-omain编译它包括hello.hpp之后在标题中main.cpp文件。这是为什么?编辑:我们是否可以为我们的自定义头文件和cpp文件模仿标准模板