草庐IT

unsigned-char

全部标签

C++ 自动类型转换为 std::string 和 char* 的区别

作为学习练习,我一直在研究C++中的自动类型转换是如何工作的。我知道通常应该避免自动类型转换,但我还是想通过了解它的工作原理来增加我对C++的了解。我已经创建了一个可以自动转换为std::string的StdStringConverter类,但是编译器(Debian上的g++4.3.4)似乎没有这样做将对象与真实的std::string进行比较时的转换(请忽略缺少按引用传递和不必要地创建临时对象的情况):#includeclassStdStringConverter{public:explicitStdStringConverter(std::stringname):m_name(na

c++ - 将 size_t 转换为 int 以声明 char 数组的大小

我正在尝试声明一个char数组的大小,我需要使用声明为size_t的变量的值来声明该大小。无论如何我可以将size_t变量转换为int以便我可以这样做吗? 最佳答案 size_t是一个整数类型,不需要转换。在C++中,如果您想拥有一个动态大小数组,您需要使用new来使用动态分配。也就是说,您不能使用:std::size_tsz=42;charcarray[sz];您需要改用以下内容:std::size_tsz=42;char*carray=newchar[sz];//...andlater,whenyouaredonewiththe

c++ - Boost::GIL 如何将图像保存为 JPEG 或 PNG 到 char*?

所以我看到了关于保存到文件中的示例。但我想知道是否可以将其保存到char*或字符串而不是文件中-也就是说将其保存在内存中? 最佳答案 似乎没有任何东西可以boostboost本身。所有I/O似乎都基于提供文件名。不过好像有个扩展名here称为io_new,它具有基于流的I/O。参见文档here举个例子(搜索“读写内存缓冲区”)。 关于c++-Boost::GIL如何将图像保存为JPEG或PNG到char*?,我们在StackOverflow上找到一个类似的问题:

c++ - 在设备上的线性内存中循环二维数组时将 float* 转换为 char*

在CUDA4.0编程指南的第21页有一个示例(下面给出)来说明循环遍历设备内存中二维float组的元素。2D的尺寸是width*height//Hostcodeintwidth=64,height=64;float*devPtr;size_tpitch;cudaMallocPitch(&devPtr,&pitch,width*sizeof(float),height);MyKernel>>(devPtr,pitch,width,height);//Devicecode__global__voidMyKernel(float*devPtr,size_tpitch,intwidth,int

c++函数参数char指针和字符串

voidcallme(stringa){cout为什么char*会被调用?为什么当我注释掉带有char*参数的函数时,会调用另一个函数? 最佳答案 那是因为"ASDADS"可以转换为char*。因此,编译器会为它可以匹配参数的第一个函数生成代码。如果您使用char*删除原型(prototype),编译器将查找接受参数的函数,该参数具有从char*到参数类型的隐式转换。以下面为例:classA{public:A(){}A(intx){}};//voidfoo(intx){}voidfoo(Ax){}intmain(intargc,ch

c++ - 在 C++ 中,返回从本地 char 数组创建的字符串会导致内存泄漏或未定义的行为吗?

我想知道这是否会导致C++中的内存泄漏或未定义的结果?stringfoo(){chartempArray[30];strcpy(tempArray,"Thisisatest");returnstring(tempArray);}我知道这在C中是一件坏事,但我还没有找到C++的明确答案。所以每个人都在说不,但我仍然对何时释放内存感到困惑?假设我有调用上述方法的方法voidbar(){stringtestString=foo();}在上面的代码中,从foo()返回的字符串对象在什么时候调用了它的析构函数?是在复制到对象testString后立即执行的吗? 最佳答

C++/CX - 我需要从 const char* 实例化 Platform::String

我正在尝试根据返回constchar*的方法的结果构造一个Platform::String我根本无法让它工作,多年来一直摸不着头脑。我不是一个非常有经验的c++开发人员,所以答案可能很明显,但我似乎无法解决。感谢您的帮助。 最佳答案 您可以使用mbstowcshttp://www.cplusplus.com/reference/cstdlib/mbstowcs/填充wchar_t缓冲区,然后将其传递给Platform::String构造函数以创建一个包含所需数据的实例。staticwchar_tbuffer[MAX_BUFFER];

c++ - 如何从 vector char 初始化字符串流

目前我正在使用一个boostchar数组boost::arrayreceived_data;std::istringstreamss_(received_data.data());但是如果我的received_data是std::vectorreceived_data(512);怎么办?然后我如何将这些数据发送到我的std::istringstreamss_? 最佳答案 istringstream接受一个字符串,一个字符串可以由两个字符迭代器组成,像这样:istringstreamiss(string(v.begin(),v.end

在C中以2个或以上的数字为char

我必须编写一个将数字作为字符的程序,然后找到其二进制文件,因此我使用了此代码:屏幕截图#include#includeintmain(){intoperation,basetype,k=1,k2=1,binary=0,binary2=0,remainder,remainder2,binaryzero=0000;charnum1,num2;printf("Pleaseenterthenumberoftheoperationyouwouldliketoperform:");printf("\n1.BitwiseOR\n2.BitwiseNOT\n3.BitwiseCOMPARE\n4.Exit")

c++ - 将 unsigned int 写入二进制文件

我第一次使用二进制文件,我的手上有一撮头发。无论如何,我有以下定义:unsignedintcols,rows;这些变量可以是1到大约500之间的任何值。当我将它们写入二进制文件时,我正在这样做:myFile.write(reinterpret_cast(&cols),sizeof(cols));myFile.write(reinterpret_cast(&rows),sizeof(rows));当我返回读取文件时,在cols=300上,我得到的结果是:44100有人可以向我解释为什么我会得到这个结果吗?我不能说有什么不对,因为我真的认为是我不懂事。我想做的是按原样将值存储在文件中,这样