草庐IT

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++ - 简单的 Zlib C++ 字符串压缩和解压缩

我需要在C++中对std::string进行简单的压缩和解压缩。我看了这个site代码用于字符数组。我要实现的是两个功能:std::stringoriginal="Thisistobecompressed!!!!";std::stringcompressed=string_compress(original);std::cout我试过boost压缩:std::stringCompressData(conststd::string&data){std::stringstreamcompressed;std::stringstreamdecompressed;decompressedout

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++ - 如何使用 zlib 解压 gzipstream

谁能告诉我我需要使用哪个函数来解压缩一个用vb.net的gzipstream压缩的字节数组。我想使用zlib。我已经包含了zlib.h,但我一直无法弄清楚我应该使用什么函数。 最佳答案 可以看看TheBoostIostreamsLibrary:#include#include#includestd::ifstreamfile;file.exceptions(std::ios::failbit|std::ios::badbit);file.open(filename,std::ios_base::in|std::ios_base::b