草庐IT

months3char

全部标签

c++ - 将 char[] 数组转换为 byte[] ,反之亦然? C++

将字符数组转换为字节(反之亦然)的最佳方法是什么?解决方案:voidCharToByte(char*chars,byte*bytes,unsignedintcount){for(unsignedinti=0;i 最佳答案 char类型是少数几个具有ANSI标准所保证的大小并且大小为1字节的类型之一。据我所知,C并没有直接定义类型字节。然而,拥有一个名为byte的类型实际上并不是一个字节大小的类型,这简直是太疯狂了。因此,一个简单的类型转换应该可以解决问题。 关于c++-将char[]数组

c# - 将 C# 字符串传递给 C++,并将 C++ 结果(字符串、char*.. 任何)传递给 C#

我尝试了不同的方法,但我对Interop很生气。(这里的字符串不是指变量类型,而是“字符的集合”):我有一个在dll中定义的非托管C++函数,我试图从C#访问该函数,该函数有一个字符串参数和一个字符串返回值,如下所示:stringmyFunction(stringinputString){}C++端的字符串应该是什么?和C#之一?以及为此需要哪些参数DllImport? 最佳答案 我发现最有效的方法是更明确地说明这里发生的事情。在这种情况下,可能不建议使用字符串作为返回类型。一种常见的方法是让C++端传递缓冲区和缓冲区大小。如果它对

c++ - 在 C++ 中初始化 char * 的不推荐方法是什么?

当我在C++中初始化一个本地char*变量时:char*pattern="oggS";编译器警告我:Foo.cpp:34:warning:deprecatedconversionfromstringconstantto‘char*’在C++中不推荐使用的方法是什么?如果重要,下面是我调用编译器的方式(来自Eclipse):g++-4.5-O0-g3-Wall-std=c++0x-c-fmessage-length=0-MMD-MP-MF"Foo.d"-MT"Foo.d"-o"Foo.o""Foo.cpp" 最佳答案 你想要:cons

c++ - "Narrowing conversion from ' int ' to ' char ' inside { }"交叉编译时的合法值

我有一个C++项目,我在我的机器上使用g++编译(编译到“主机”)和使用交叉编译器的ARM处理器(在我的例子中是arm-cortex_a8-linux-gnueabi-g++)。我正在转换为C++0x/11标准,编译初始化列表时出现错误,我可以在以下代码段中重现该错误:intmain(void){charc[1]={-108};}这个程序看起来是正确的,因为-108是char的合法值。使用g++编译它不会产生以下命令行错误:g++example.cc-std=c++0x但是,当我使用交叉编译器进行编译时,如下所示:arm-cortex_a8-linux-gnueabi-g++examp

c++ - 这个头文件是什么意思(virtual const char* what() const throw())?

classmyexception:publicexception{virtualconstchar*what()constthrow(){return"Myexceptionhappened";}};抱歉,这个问题可能听起来很愚蠢,但我无法解析标题。有人可以用英语描述标题的实际含义吗?首先让我觉得奇怪的是关键字virtual。myexception类不是基类,它继承自已经实现的exception类,那么为什么在这里使用virtual呢?我猜const是用于返回类型,它是一个c风格的字符串,它是const,而另一个const是为了确保这个对象不能被修改(有人能告诉我那个物体可能是什么吗?

c++ - 如何连接字符串和 const char?

我需要在c中输入“helloworld”。我该怎么做?stringa="hello";constchar*b="world";constchar*C; 最佳答案 stringa="hello";constchar*b="world";a+=b;constchar*C=a.c_str();或不修改a:stringa="hello";constchar*b="world";stringc=a+b;constchar*C=c.c_str();少量编辑,以匹配111111给出的信息量。当您已经拥有string时s(或constchar*s,

c++ - 带有 char* 构造函数的异常类

我在VS2008上遇到了如下代码if(!CreateProcess(NULL,const_cast(ss.str().c_str()),NULL,NULL,FALSE,CREATE_NO_WINDOW|NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi)){throwstd::exception("UnabletoformatDevice");}现在我将代码移植到mingwgcc并收到错误error:nomatchingfunctionforcallto'std::exception::exception(constchar[23])'调查该问题时,我注意到

c++ - 如何使用空终止字符memset char数组?

用空终止字符memset整个字符数组的正确和最安全的方法是什么?我可以列出一些用法:...char*buffer=newchar[ARRAY_LENGTH];//Option1:memset(buffer,'\0',sizeof(buffer));//Option2beforeedit:memset(buffer,'\0',sizeof(char*)*ARRAY_LENGTH);//Option2afteredit:memset(buffer,'\0',sizeof(char)*ARRAY_LENGTH);//Option3:memset(buffer,'\0',ARRAY_LENGT

c++ - 如何在 C++ 中将 .txt 文件复制到 char 数组

我试图将整个.txt文件复制到一个字符数组中。我的代码有效,但它忽略了空格。因此,例如,如果我的.txt文件读取“我喜欢馅饼”并将其复制到myArray,如果我使用for循环计算我的数组,我会得到“ILikePie”这是我的代码#include#include#includeusingnamespacestd;intmain(){intarraysize=100000;charmyArray[arraysize];charcurrent_char;intnum_characters=0;inti=0;ifstreammyfile("FileReadExample.cpp");if(my

c++ - 为什么 std::string 不提供到 const char* 的转换?

这更多是一个政策或历史问题。为什么决定不为std::string提供constchar*转换?是否担心有人会执行printf("%s",s)并相信它会自动转换?有没有关于这个问题的公开讨论? 最佳答案 自动施法几乎总是邪恶的。如果对constchar*进行强制转换,std::string也可能会自动强制转换为其他指针类型,这可能导致难以发现错误。有一个返回constchar*的c_str()方法,所以你仍然可以实现你所需要的。此外,类型转换在逻辑上不正确-std::string不等同于constchar*。