jjzjj

basic_istream

全部标签

c++ - solaris (x86) 上std::basic_string 的一些疑惑

solaris(x86)上std::basic_string的一些困惑#include#includeintmain(){constwchar_t*s=L"abcdef";std::wstringws(s,s+6);for(inti=0;i运行结果为:9799101000为什么不是979899100101102代码#include#includeintmain(){constwchar_t*s=L"abcdef";std::wstringws;ws.resize(6);for(inti=0;i可以得到预期的结果。我使用gcc3.4.6,构建命令是g++-fshort-wcharstri

c++ - 我不能在调用 istream 作为参数的函数中使用 ifstream 吗?

这是使用C++编程原则和实践第10章的练习。该程序使用点:它提示用户输入(x,y)对。然后将它们存储在称为original_points的点vector中。原始点被打印到文件中程序然后读取文件以检索相同的点,存储在名为processed_points的点vector中比较两个vector,如果它们不相同,程序会抛出错误。问题是processed_points的size()为0,只有当我使用get_vector_points()获取那些时才会发生这种情况点。函数有什么问题?//putanyvectorpointsfromistintopointsvoidget_vector_points

c++ - 错误 : no matching function for call to ‘to_string(std::basic_string<char>&)’

即使在模板中我可以有任何类型,函数to_string对基本字符串不起作用:例如:std::stringstr("mystring");my_class(str);用这个仿函数定义:templatevoidoperator()(valuetypevalue){...private_string_field=std::to_string(value);不起作用。这是错误:error:nomatchingfunctionforcallto‘to_string(std::basic_string&)’避免它的最佳方法是什么。事先,我要求避免仅仅因为一些常见的关键字就链接到不相关的问题。

c++ - 在 C++ 的编译时检查类型是否为 std::basic_string<T>

我在我的C++代码中定义了is_string:#includetemplatestructis_string{staticconstboolvalue=false;};templatestructis_string>{staticconstboolvalue=true;};intmain(){std::cout::value::value对于std::string和std::wstring都是如此。但我需要这样的谓词:is_string::value//tobetrueis_string::value//tobefalseis_string::value//tobefalseis_st

c++ - 为什么 istream_iterator<string>(ifstream ("test.txt")) 会导致错误?

我尝试编写代码从名为“test.txt”的文件中读取字符串并将字符串写入标准输出。下面的代码运行良好:intmain(){usingnamespacestd;ifstreamfile("test.txt");copy(istream_iterator(file),istream_iterator(),ostream_iterator(cout,""));}但是,通过此修改,代码不再编译:intmain(){usingnamespacestd;copy(istream_iterator(ifstream("test.txt")),//(),ostream_iterator(cout,""

c++ - 如何使用类似 `std::basic_istream<std::byte>` 的东西

本题旨在使用std::byte具有标准输入输出。是否有任何计划为read(_bytes)添加适当的函数重载?和write(_bytes)到basic_istream的接口(interface)和basic_ostream在未来的标准?有什么理由反对它?我知道CharT*-应保留过载。我可以做什么来使用std::byte?我目前在我的项目功能中定义std::istream&read(std::istream&,std::byte*,std::streamsize)std::ostream&write(std::ostream&,conststd::byte*,std::streamsiz

c++ - istream_iterator cin 初始化等待输入

我有这个代码片段。istream_iterator对象仅被定义而未被使用,因此我预计它不会执行任何操作并且应用程序会立即完成。但是当我运行应用程序时,在我提供一些输入之前它不会完成。为什么?我在ArchLinux上编译它:gcc4.7.1,命令:g++-std=c++11filename.cpp#include#includeusingnamespacestd;intmain(intargc,char*argv[]){istream_iteratorinput(cin);return0;} 最佳答案 按照标准,24.6.1.1ist

c++ - std::basic_string 完全特化(g++ 冲突)

我正在尝试定义std::basic_string,allocator>的完全特化这是由定义的(在g++中)标题。问题是,如果我包含首先,g++将typedef视为basic_string的实例化并给我错误。如果我先进行特化,那么我就没有问题。我应该能够在之后定义我的特化已经包括了。我必须做什么才能做到这一点?我的代码:#include//#include//classbasic_string,allocator>{public:intblah(){return42;}size_tsize(){return0;}constchar*c_str(){return"";}voidreserv

c++ - 当你有一个 std::string 时如何使用 basic_istream

我有一个使用basic_istream作为参数的函数,我有一个std::string和我需要传递给它的数据。我该怎么做? 最佳答案 您可以将字符串数据放入流中:std::stringx;std::stringstreamss(x);//putstringintostreamfunction_taking_stream(ss); 关于c++-当你有一个std::string时如何使用basic_istream,我们在StackOverflow上找到一个类似的问题:

c++ - 如何使用 libjpeg 从 std::istream 读取 JPEG?

libjpeg可以从FILE*或缓冲区中读取JPEG数据。我的数据来自std::istream。我可以将整个std::istream读入缓冲区以与libjpeg一起使用,但如果可能的话,我宁愿让libjpeg直接从std::istream中读取。如何做到这一点? 最佳答案 您只需要为您的istream提供包装器。定义一个结构体,例如structJpegStream{jpeg_source_mgrpub;std::istream*stream;bytebuffer[4096];}然后需要四种方法对流进行操作:voidinit_sour