Tag: iostream

将ostream转换为标准string

我对C ++ STL很新,所以这可能是微不足道的。 我有一个ostreamvariables,其中包含一些文本。 ostream* pout; (*pout) << "Some Text"; 有没有一种方法来提取stream并将其存储在char*types的string中?

为什么C ++stream使用char而不是unsigned char?

我一直想知道为什么C ++标准库已经实例化了basic_ [io]stream及其所有使用chartypes而不是unsigned chartypes的变体。 char意味着(取决于它是否被签名),像get()这样的操作可能会产生上溢和下溢,这将导致所涉及variables的实现定义值。 另一个例子是当你想输出一个字节,无格式,使用它的put函数的ostream。 有任何想法吗? 注意 :我还没有真正相信。 所以如果你知道确切的答案,你仍然可以发布它的确。

C ++中是否有二进制内存stream?

我通常使用stringstream来写入内存中的string。 有没有办法写入二进制模式的字符缓冲区? 考虑下面的代码: stringstream s; s << 1 << 2 << 3; const char* ch = s.str().c_str(); ch的内存将如下所示:0x313233 – 字符1,2和3的ASCII代码。我正在寻找一种方法来编写二进制值本身。 也就是说,我想在内存中的0x010203。 问题是我想能够写一个函数 void f(ostream& os) { os << 1 << 2 << 3; } 并决定在什么样的stream使用。 像这样的东西: mycharstream c; c << 1 << 2 << 3; // c.data == 0x313233; mybinstream b; b << 1 << […]

为什么不能std :: ostream被移动?

显然,stream不能被复制。 应该有可能移动stream。 根据27.9.1.11 [ofstream.cons]第4段,可以移动构造std::ofstream ( std::ifstream , std::fstream和std::*stringstream变种也是如此)。 例如: #include <iostream> #include <fstream> #include <string> std::ofstream makeStream(std::string const& name) { return std::ofstream(name); } int main() { std::ofstream out{ makeStream("example.log") }; } 试图移动一个std::ostream ,例如,有一个工厂函数创build一个std::ofstream ,一个std::ostringstream ,或根据作为parameter passing的URN的其他stream不起作用。 std::ostream (好的,类模板std::basic_ostream真的)有一个按照27.7.3.1 [ostream] protected移动构造函数。 为什么不能std::ostream被移动本身?

什么是streambuf? 我如何使用它?

我想了解更多关于I / Ostream如何在C ++中工作,我真的很困惑什么时候使用。 什么是streambuf ? 什么时候使用streambuf ,与string , istream或vector ? (我已经知道最后三个了,但是不知道streambuf与他们的比较,如果是的话)。

cout,cerr,clock在c ++中的iostream头文件有什么区别? 何时使用哪一个?

我试图研究互联网上的cout , cerr和clog之间的区别,但找不到完美的答案。 我还不清楚什么时候用哪个。 任何人都可以向我解释,通过简单的程序,并说明何时使用哪一个完美的情况? 我访问了这个网站 ,它显示了一个关于cerr和clog的小程序,但是在那里获得的输出也可以用cout获得。 所以,我很困惑每个人的确切用途。

操作后恢复std :: cout的状态

假设我有这样的代码: void printHex(std::ostream& x){ x<<std::hex<<123; } .. int main(){ std::cout<<100; // prints 100 base 10 printHex(std::cout); //prints 123 in hex std::cout<<73; //problem! prints 73 in hex.. } 我的问题是,如果有什么办法从函数返回后将cout的状态恢复到原来的状态? (有点像std :: boolalpha和std :: noboolalpha ..)? 谢谢。

是int8_t和uint8_t打算是字符types?

鉴于这个C + + 11程序,我应该期望看到一个数字或字母? 还是不做预期? #include <cstdint> #include <iostream> int main() { int8_t i = 65; std::cout << i; } 标准是否指定此types是否可以是字符types?

C ++ – 无法parsing的包含:<iostream>

我为c ++下载eclipse (cdt-master-8.0.2.zip)。 当我写: #include <iostream> 它标志着: Unresolved inclusion: <iostream> 我该如何解决?

运算符<<必须采用恰好一个参数

啊 #include "logic.h" … class A { friend ostream& operator<<(ostream&, A&); … }; logic.cpp #include "ah" … ostream& logic::operator<<(ostream& os, A& a) { … } … 当我编译时,它说: std :: ostream&logic :: operator <<(std :: ostream&,A&)'必须只有一个参数。 问题是什么?