草庐IT

basic_istream

全部标签

c++ - 直接从 std::istream 读取到 std::string

是否可以直接将已知数量的字节读取到std::string中,而无需创建临时缓冲区?例如,目前我可以通过boost::uint16_tlen;is.read((char*)&len,2);char*tmpStr=newchar[len];is.read(tmpStr,len);std::stringstr(tmpStr,len);delete[]tmpStr; 最佳答案 std::string有一个你可以使用的resize函数,或者一个可以做同样事情的构造函数:boost::uint16_tlen;is.read((char*)&le

c++ - 可以在声明的同一行上使用 istream 初始化变量吗?

这个问题在这里已经有了答案:Arethereanytrickstousestd::cintoinitializeaconstvariable?(6个回答)关闭4年前.下面两行可以浓缩成一条吗?intfoo;std::cin>>foo; 最佳答案 聪明的答案:intold;std::cin>>old;可怕的答案:intold,dummy=(std::cin>>old,0);正确答案:old必须先用声明定义,然后才能作为参数传递给operator>>。在变量声明中获取函数调用的唯一方法是将其放在上面的初始化表达式中。声明变量并将输入读入

c++ - 可以在声明的同一行上使用 istream 初始化变量吗?

这个问题在这里已经有了答案:Arethereanytrickstousestd::cintoinitializeaconstvariable?(6个回答)关闭4年前.下面两行可以浓缩成一条吗?intfoo;std::cin>>foo; 最佳答案 聪明的答案:intold;std::cin>>old;可怕的答案:intold,dummy=(std::cin>>old,0);正确答案:old必须先用声明定义,然后才能作为参数传递给operator>>。在变量声明中获取函数调用的唯一方法是将其放在上面的初始化表达式中。声明变量并将输入读入

WPS保存时显示“Microsoft Visual Basic类未注册。查找具有以下CLSID的对象XXXXX”以及各类可能遇见的问题总结

今天遇见了这种情况,前前后后处理了两个小时才搞好,特此整理一下解决方法和其中遇见的问题。出现此种情况一般是在装了WPS和Office之后出现的。上网查了一下,发现有不少人也遇到了这个问题,但是情形稍有不同:有的是打开word报错,有的是打开Excel报错,还有的是打开ppt报错;有的是用word出错,有的是用wps出错。虽然具体情况不同,但解决方法却差不多,都是需要重新注册下某个dll文件。这个dll的名字叫FM20.DLL,不同的操作系统这个dll的位置略有不同:(1)32位系统,C:\Windows\System32目录下。(2)64位系统,C:\Windows\SysWOW64目录下。引

c++ - `basic_streambuf::setbuf`的效果

我的问题如下:MartinYorkthis中的claim,this,和this回答可以使用basic_stringbuf::pubsetbuf像这样从一段内存中读取stringstream:charbuffer[]="123";istringstreamin;in.rdbuf()->pubsetbuf(buffer,sizeof(buffer));//callsbasic_stringbuf::setbufintnum;in>>num;//reads123不幸的是,我仔细研究了整个标准,看不出它在哪里可以保证工作。我看到的是这只是实现定义的。事实上,在Microsoft的实现(也许对其

c++ - `basic_streambuf::setbuf`的效果

我的问题如下:MartinYorkthis中的claim,this,和this回答可以使用basic_stringbuf::pubsetbuf像这样从一段内存中读取stringstream:charbuffer[]="123";istringstreamin;in.rdbuf()->pubsetbuf(buffer,sizeof(buffer));//callsbasic_stringbuf::setbufintnum;in>>num;//reads123不幸的是,我仔细研究了整个标准,看不出它在哪里可以保证工作。我看到的是这只是实现定义的。事实上,在Microsoft的实现(也许对其

c++ - 在 C++17 中没有从 std::string 到 std::string_view 的隐式转换(在 std::experimental::basic_string_view 中)

我的问题是关于C++17:http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view从std::basic_string到std::basic_string_view的隐式转换没有包含在后者的接口(interface)中的警告是什么?我相信它会极大地提高这门课。特别是比较运算符系列,也不接受std::string作为lhs和rhs。librarybasicsTS规范中有这样的转换:http://en.cppreference.com/w/cpp/experimental/basic_string

c++ - 在 C++17 中没有从 std::string 到 std::string_view 的隐式转换(在 std::experimental::basic_string_view 中)

我的问题是关于C++17:http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view从std::basic_string到std::basic_string_view的隐式转换没有包含在后者的接口(interface)中的警告是什么?我相信它会极大地提高这门课。特别是比较运算符系列,也不接受std::string作为lhs和rhs。librarybasicsTS规范中有这样的转换:http://en.cppreference.com/w/cpp/experimental/basic_string

c++ - istream::getline 返回类型

istream::getline方法返回什么?我之所以问,是因为我已经看到要循环遍历文件,应该这样做:while(file.getline(char*,int)){//handleinput}返回什么? 最佳答案 它返回一个流,以便我们可以链接操作。但是当你在bool上下文中使用一个对象时,编译器会寻找一个可以将它转换为可以在bool上下文中使用的类型的转换运算符。C++11在这种情况下,流具有explicitoperatorbool()const.当被调用时,它会检查错误标志。如果设置了failbit或badbit,则返回fals

c++ - istream::getline 返回类型

istream::getline方法返回什么?我之所以问,是因为我已经看到要循环遍历文件,应该这样做:while(file.getline(char*,int)){//handleinput}返回什么? 最佳答案 它返回一个流,以便我们可以链接操作。但是当你在bool上下文中使用一个对象时,编译器会寻找一个可以将它转换为可以在bool上下文中使用的类型的转换运算符。C++11在这种情况下,流具有explicitoperatorbool()const.当被调用时,它会检查错误标志。如果设置了failbit或badbit,则返回fals