草庐IT

unsigned-char

全部标签

c++ - 在 C++ 中什么时候使用 WCHAR 什么时候使用 CHAR

我有一个问题:有些库使用WCHAR作为文本参数,而其他库使用CHAR(作为UTF-8):我在编写自己的库时需要知道何时使用WCHAR或CHAR。 最佳答案 使用char并将其视为UTF-8。这有很多原因。这个网站总结得比我好得多:http://utf8everywhere.org/它建议您从任何库收到它后立即从wchar_t转换为char(UTF-16到UTF-8),并在需要时转换回来将字符串传递给它。因此,要回答您的问题,请始终使用char,除非API要求您传递或接收wchar_t。

c++ - 为什么全局 const char 需要 "static"而 bool 不需要?

共享header。我能做到:constboolkActivatePlayground=false;包含在多个文件中时工作正常。我不能这样做:constchar*kActivePlayground="kiddiePool";导致错误:重复的符号。但这行得通:staticconstchar*kActivePlayground="kiddiePool";为什么constchar*需要static而constbool不需要?另外,我认为static不是必需的,因为const总是static隐式? 最佳答案 在C++中,const变量默认有静

c++ - 如何在 unsigned int 和 int 之间安全地进行 static_cast?

我有一个8字符的string表示一个十六进制数,我需要将它转换为一个int。此转换必须保留字符串"80000000"及更高版本的位模式,即这些数字应为负数。不幸的是,天真的解决方案:inthex_str_to_int(conststringhexStr){stringstreamstrm;strm>val;returnstatic_cast(val);}如果val>MAX_INT(返回值为0),则对我的编译器不起作用。将val的类型更改为int也会导致较大数字为0。我已经尝试了SO上各种答案的几种不同解决方案,但尚未成功。这是我所知道的:我在OpenVMS上使用HP的C++编译器(我相

c++ - 为什么在 C++ 中更喜欢 char* 而不是 string?

我是一名尝试编写C++代码的C程序员。我听说C++中的string在安全性、性能等方面优于char*,但有时似乎char*更好选择。有人建议程序员不要在C++中使用char*,因为我们可以做所有char*可以用string做的事情,而且更安全、更快。你曾经在C++中使用过char*吗?具体条件是什么? 最佳答案 使用std::string更安全,因为您无需担心为字符串分配/释放内存。C++std::string类很可能在内部使用char*数组。但是,该类将为您管理内部数组的分配、重新分配和释放。这消除了使用原始指针带来的所有常见风险

c++ - 无法从 'const char [3]' 转换为 'char *' x100000 (Qt Creator C++ Windows 32)

就在五分钟前,当我点击f5并收到102个错误时一切正常:error:C2440:'initializing':cannotconvertfrom'constchar[17]'to'char*'Conversionfromstringliterallosesconstqualifier(see/Zc:strictStrings)那个特定的在第30行:char*hexchars="0123456789ABCDEF";我至少有一个星期没有碰过错误所在的文件了。我通常会说我不小心更改了编译参数或其他内容,但在它开始出错之前我还没有打开设置。有什么想法吗?我一定是心不在焉地更改了一些设置,但我真

c语言--unsigned修饰符

在C语言中,unsigned是一种无符号整数修饰符。它可以与多个整数类型(如int、short、long等)结合使用,表示该整数类型只包含非负数值。unsigned修饰的整数类型不保存正负号位,因此可以用来表示更大的正整数范围。例如,unsignedint表示无符号整数,范围从0到UINT_MAX,其中UINT_MAX是标准头文件中定义的该类型所能表示的最大值。它用于表示非负整数,即大于或等于零的整数值。与有符号整数类型(如int)不同,unsignedint没有保存数字的正负号位,因此可以表示更大的正整数范围。一般情况下,unsignedint在内存中使用与int相同的字节大小,但它的取值范

windows - 将 const wchar_t* 转换为 const char*

我正在尝试使用GetHostByName(),这需要一个constchar*。我的URL位于成本wchar_t*格式的变量中。我如何转换它以便GetHostByName可以使用它?代码。BSTRbstr;pBrowser->get_LocationURL(&bstr);std::wstringwsURL;wsURL=bstr;size_tDSlashLoc=wsURL.find(L"://");if(DSlashLoc!=wsURL.npos){wsURL.erase(wsURL.begin(),wsURL.begin()+DSlashLoc+3);}DSlashLoc=wsURL.f

c++ - 从 unsigned int 到 float 的转换

warningC4244:'=':conversionfrom'unsignedint'to'float',possiblelossofdatafloat不应该能够处理来自int的任何值吗?unsignedint:0to4,294,967,295float3.4E+/-38(7digits)维基:Theadvantageoffloating-pointrepresentationoverfixed-point(andinteger)representationisthatitcansupportamuchwiderrangeofvalues.任何见解都会有所帮助,谢谢。http://m

C# 将 char 转换为 8x8 二进制的方法

你能帮我寻找一种将char转换为8x8二进制的方法吗(我不确定如何调用它)例如“A”0001100000100100001001000100001001111110100000011000000110000001我实际上是手动做的:(建议仍然开放:D编辑:不管怎样,如果你们想知道我想做什么。我正在尝试制作这个LEDWaveDisplay.但是由于我没有计算机接口(interface)知识。我只想在WindowsMobile中尝试一下。哈哈 最佳答案 我发现了这个http://www.codeproject.com/KB/miscct

MySQL中的char和varchar&mysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别

1、varchar能存多少汉字、数字?具体还是要看版本的,一个字符占用3个字节,一个汉字(包括数字)占用3个字节=一个字符4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。UTF8编码中一个汉字(包括数字)占用3个字节GBK编码中一个汉字(包括数字)占用2个字节2、varchar的最大长度是多少呢?mysql的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到6