草庐IT

char16-t

全部标签

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];

如何将未签名的16和未签名的32位整数编码为未签名的8位内存数组?

我知道如何进行一点转移,但是我的价值似乎从边缘流行,我失去了原始价值,以换取保留8位。看答案对于未签名的16位整数:unsignedshortval16=0x1234;unsignedcharenc[2];enc[0]=val16&0xff;//stores0x34toenc[0]enc[1]=val16>>8&0xff;//stores0x12toenc[1]对于未签名的32位整数:unsignedintval32=0x12345678;unsignedcharenc[4];enc[0]=val32&0xff;//stores0x78toenc[0]enc[1]=val32>>8&0xff;

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++ - 有没有办法使用 OpenCV 来均衡每个样本图像 16 位的直方图?

我正在处理16位/样本图像。是否有一种(简单的)方法来执行此类图像的直方图均衡化(转换为8bps不是一种选择)? 最佳答案 equalizeHist在OpenCV中只需要8位数据。但OpenCV中的图像归一化不限于8位数据。查看其说明here.在您的情况下,对函数的调用应如下所示:normalize(src_image,dst_image,0,65535,NORM_MINMAX);如果你想提高图像的对比度,首先尝试标准化,只有当这不起作用时才尝试均衡。规范化速度更快且破坏性更小。引用:http://answers.opencv.or

c++ - 如果覆盖 char 数组的边界,为什么 strcat_s 会崩溃?

我知道,已经有很多关于这个主题的帖子,但我没有找到任何令人满意的帖子。连谷歌都不是我的friend。所以,首先是我的代码:voidsecureCat(){constintBUFFERSIZE=5;charbuffer[BUFFERSIZE];strcpy_s(buffer,BUFFERSIZE,"01");cout我在带有MSVS2010的Windows上玩过这段代码,遇到了以下问题:strcat_s的第一次调用工作正常,这对我来说很清楚,因为新字符串的大小("01"+"2"+NUL字符)小于缓冲区大小。但是,当超过缓冲区大小时,为什么第二个调用会崩溃?据我了解MSDN,我应该得到一个

c++ - int8_t 和 char : converts between pointers to integer types with different sign - but it doesn't

我正在处理一些嵌入式代码,并且正在从头开始编写一些新东西,因此我更愿意坚持使用uint8_t、int8_t等类型。然而,当移植一个函数时:voidfunctionName(char*data)到:voidfunctionName(int8_t*data)在将文字字符串传递给函数时,我收到编译器警告“在指向具有不同符号的整数类型的指针之间转换”。(即调用functionName("putthistextin");时)。现在,我明白了为什么会发生这种情况,并且这些行只是调试,但我想知道人们认为什么是最合适的处理方式,而不是对每个文字字符串进行类型转换。在实践中,我不认为一揽子类型转换比使用

c++ - std::wstring 在 Windows 上是否支持 UTF-16 和 UTF-32?

我正在学习Unicode,有几个问题希望得到解答。1)我读过,在Linux上,std::wstring是4个字节,而在Windows上,它是2个字节。这是否意味着Linux内部支持是UTF-32而Windows是UTF-16?2)std::wstring的使用是否与std::string接口(interface)非常相似?3)VC++是否支持使用4字节的std::wstring?4)如果使用std::wstring,是否必须更改编译器选项?作为旁注,我遇到了一个用于使用UTF-8的字符串库,它具有与std::string非常相似的接口(interface),它提供了熟悉的功能,例如长度