草庐IT

CHAR_LENGTH

全部标签

c++ - 如何在 C++ 中将 char* 转换为 unsigned short

我有一个char*name,它是我想要的短的字符串表示形式,例如“15”,需要将其作为unsignedshortunitId输出到二进制文件。此类型转换还必须是跨平台兼容的。这是正确的转换吗:unitId=unsignedshort(temp);请注意,我在理解二进制方面处于初级水平。 最佳答案 我假设您的char*name包含您想要的短的string表示,即"15"。不要将char*直接转换为非指针类型。C中的转换实际上根本不会更改数据(除了少数异常(exception))——它们只是通知编译器您要将一种类型转换为另一种类型。如果

c++ - 错误 : cannot convert 'const wchar_t [13]' to 'LPCSTR {aka const char*}' in assignment

//includethebasicwindowsheaderfile#include#include//theWindowProcfunctionprototypeLRESULTCALLBACKWindowProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam);//theentrypointforanyWindowsprogramintWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){//thehandleforthew

c# - C++ dll 将 utf8 作为 const char* 发送,c# 需要做什么……什么?

dll是用c++编写的,通过constchar*回调将文本作为utf8发送。首先,这是声明回调的正确方法吗?[UnmanagedFunctionPointer(CallingConvention.StdCall)]publicdelegatevoidTextCallback(stringsText);[DllImport("cppLib.dll",CharSet=CharSet.Ansi,CallingConvention=CallingConvention.Cdecl)]publicstaticexternvoidGetText([MarshalAs(UnmanagedType.Fu

c++运算符字符串和char *导致歧义错误

我正在尝试创建一个带有字符串和char*转换运算符的类,这会在尝试创建字符串时产生模糊调用错误。假设我有以下类(class):classA{public:A(){};operatorconstchar*()const{return"a"};operatorconststring()const{return"b"};}以及以下主要程序:intmain(){Aa;stringb=string(a);return0;}这导致对basic_string(A&)的模糊调用错误还尝试了以下方法:classA{public:A(){};operatorconstchar*()const{return

c++ - 如何将 Wchar_t* 转换为 const char*

这个问题在这里已经有了答案:Howtoconvert'wchar_t*'to'constchar*'(1个回答)关闭9年前。我是c++的新手,同时在windowsCE.netcompact应用程序上工作尝试将六边形数据写入文件时CStringdataBlock1;dataBlock1="";CStringtemp;for(inti=0;i我收到此错误无法将参数1从wchar*转换为constchar*在使用下面的写入函数将六边形数据写入文件时打开out.write(myReader.dataBlock1.GetBuffer(),myReader.dataBlock1.GetLength

c++ - 如何将二进制值的字符串转换回 char

例子注意:我只关心字母。所以bitset000001将是a或A。我有一个名为s的string,其值为"abc"。我获取string的每个char并将其转换为二进制值bitset的使用。例如bitsetb1=s[0];//abitsetb2=s[1];//bbitsetb3=s[2];//c然后我想将结果放入字符串的数组中。数组的名称是arr(array的每个string将代表每个char的二进制值)例如arr[0]//willholdthevalueofchar'a'inbinaryformwhichis000001arr[1]//willholdthevalueofchar'b'in

c++ - 为什么我不能用 foo(char* args[]) 做 foo({"asd","asd1"})?

我正在阅读C++Primer,在第6.2节中它说:"Parameterinitializationworksthesamewayasvariableinitialization."然而当我这样做时:voidfoo(char*args[]){return;}intmain(){char*args[]={"asd","dsa"};//ok.foo({"asd","dsa"});//error.}这是为什么? 最佳答案 作为@T.C.在评论中指出,函数参数中的args被转换为char**因为函数不能将数组作为参数。既然你做不到char**

c++ - 在 std::string 中使用自定义分配器重新使用已分配的 char 缓冲区

我需要在std::string对象中使用一个已经分配的char*缓冲区(带有字符串内容)。经过一些研究,我发现这几乎是不可能的,并且std::string总是会有自己的私有(private)数据拷贝。我能想到的唯一剩下的方法是使用自定义分配器,它将返回已分配的char缓冲区的地址。为此,std::string应仅使用分配器来分配内存以保存其字符串数据,而不用于其他目的。是这样吗? 最佳答案 std::string是basic_string的类型定义,已经明确使用默认分配器。std::string无法使用不同的分配器。即使您使用所需的

c++ - 从 char* 到 signed char* 的转换

我看到了一段有效的C代码,我试图将其编译为C++,但出现了一个我无法理解的错误。char*t;signedchar*v=t;error:invalidconversionfromchar*tosignedchar*据我了解,char和signedchar在语义上是相同的,但仍被编译器视为不同。我知道错误是由这两种类型之间的差异引起的,我的问题是:为什么存在这种差异?据我所知,char是作为signedchar或unsignedchar实现的,因此它应该与两者相同或另一个。我咨询了thisquestion它没有回答我想知道的问题。 最佳答案

c++ - 为什么 "auto"将字符串声明为 const char* 而不是 std::string?

我制作了一个模板,其中添加了给定的数据。如果我这样使用它,编译器会将in_1和in_2声明为constchar*,并且代码不会编译。#includeusingnamespacestd;templateTaddstuff(Tpart_1,Tpart_2){return(part_1+part_2);}intmain(intargc,charconst*argv[]){autoin_1="Shut";autoin_2="up.";cout如果我声明in_1和in_2std::string,它就像一个魅力。为什么编译器不能(或没有)自动声明这些字符串std::string?