草庐IT

unsigned-char

全部标签

c++ - 如何将 char 数组转换为单个整数?

我正在尝试读取PNG文件的内容。您可能知道,所有数据都以4字节的方式写入png文件中,包括文本和数字。因此,如果我们有编号35234,则以这种方式保存:[1000][1001][1010][0010].但有时数字更短,所以第一个字节为零,当我读取数组并将其从char*转换为整数时,我得到了错误的数字。例如[0000][0000][0001][1011]有时数字被误解为负数,有时被误解为零!让我给你一个直观的例子:chars_num[4]={120,80,40,1};intt_num=0;t_num=int(s_num);我希望我能很好地解释我的问题!如何将此类数组转换为单个整数值?好的

c++ - "\n"算一个字符还是两个字符,可以存成char吗?

我很确定chartype用于存储单个ASCII字符,除非添加任何前缀。所以考虑到这一点,我使用std::string中包含的类型或在我需要的时候。如果我存储"\n"在std::string里面并打印出来,它算作一个字符。这是否意味着我可以将字符串放入char中,即使它看起来由两个字符组成? 最佳答案 换行符是单个(通常为8位)字符。它在程序源代码中(在字rune字或字符串文字中)由双字符序列\n表示。所以'\n'是一个表示单个字符的字符常量,即换行符。另一方面(如PaulGriffiths'answer指出的那样),"\n"(使用双

c++ - 将 char 数组缓冲区转换为字符串的好方法?

我对C++比较陌生。最近的作业要求我将大量字符缓冲区(从结构/套接字等)转换为字符串。我一直在使用以下变体,但它们看起来很尴尬。有没有更好的方法来做这种事情?#include#includeusingstd::string;usingstd::cout;usingstd::endl;char*bufferToCString(char*buff,intbuffSize,char*str){memset(str,'\0',buffSize+1);return(strncpy(str,buff,buffSize));}string&bufferToString(char*buffer,int

c++ - 如何将 vector<char*> 转换为 vector<string>/string

我们有一个返回vector的遗留方法字符指针,即vector.现在,我只需要处理字符串(std::string)。我该怎么做?这个问题听起来很简单,但我遇到了几个网站,它们描述了这些考虑因素可能会导致内存泄漏。现在,我要么想要一个vector甚至是没有任何内存泄漏的字符串。我该怎么做? 最佳答案 转换非常简单:std::vectorugly_vector=get_ugly_vector();std::vectornice_vector(ugly_vector.begin(),ugly_vector.end());不过,一旦你这样做了

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

我遇到了将值从Double转换为int的问题。我尝试运行以下代码:intmain(){doubleval_d=6.25e-05;cout从double到int的转换可能会删除小数部分,但应保留整数部分是吗?我得到的输出是:1600015999那么为什么这里的o/p不同呢?这只发生在软呢帽上。在Windows和Ubuntu上它工作正常。(两个输出都是16000)我调整了上面的代码并得到了以下结果:intmain(){doubleval_d=6.25e-05;cout新输出是160001600016000 最佳答案 当源文本“6.25e

c++ - unsigned int 的最大值

这个问题在这里已经有了答案:Testingforamaximumunsignedvalue(6个答案)关闭9年前。这是我想要的:unsignedintmax_unsigned_int_size;max_unsigned_int_size=???;我应该怎么做?

存储之道:MySQL 中的字符串数据类型之 CHAR 与 VARCHAR

文章目录参考描述CHAR与VARCHAR常见的字符串数据类型权衡CHAR中尾随的空白字符固定字符长度PAD_CHAR_TO_FULL_LENGTH开启PAD_CHAR_TO_FULL_LENGTH模式配置文件Windows下MySQL常见版本的配置文件所在的路径Linux下MySQL常见版本的配置文件所在的路径SET关键字尾随空白字符的显现CHAR字段值的检索尾部空格的自动删除如何避免尾部空格的自动删除?输入字符超出最大字符长度默认处理方式严格模式比较VARCHAR的额外数据VARCHAE的数据存储方式参考项目描述MySQL官方文档TheCHARandVARCHARTypesMySQL官方文档

c++ - 'TypeInfo<char>(char * )' isn' t defined but worked pre-C++11; what changed, and how can I fix the error?

我正在尝试从CrysisWarsSDK的源代码构建DLL,并且过去在以前版本的VisualStudio(即2005、2008和2010)上成功地完成了此操作。我的具体问题是:Error4errorLNK2019:unresolvedexternalsymbol"structCTypeInfoconst&__cdeclTypeInfo(char*)"(??$TypeInfo@D@@YAABUCTypeInfo@@PAD@Z)referencedinfunction"void__cdeclSwapEndian(char*,unsignedint)"(??$SwapEndian@D@@YAX

c++ - 缩小从 `int`(常量表达式)到 `unsigned int` 的转换 - MSVC vs gcc vs clang

constexprinti=100;structF{F(unsignedint){}};intmain(){F{i};}上面的代码片段:使用-Wall-Wextra-Wpedantic在g++7上编译没有警告。使用-Wall-Wextra-Wpedantic在clang++4上编译没有警告。无法在MSVC2017上编译:conversionfrom'constint'to'unsignedint'requiresanarrowingconversion问:这里MSVC是不是错了?liveexampleongodbolt.orginti=100;structF{F(unsignedint

c++ - 使用整数文字初始化 char 数组和 char 的区别

在我的系统上(4.13.11-1-ARCH,gcc7.2.0)char是signed。当使用integerliteral初始化char数组时,如下所示:constcharmydata[]={0x80};我收到以下错误:error:narrowingconversionof‘128’from‘int’to‘char’inside{}[-Wnarrowing]然而,当我改为执行constchardata=0x80时,编译器并不担心任何缩小,尽管它当然会发生。输出为7F,即最大正signedchar值。问题为什么编译器不会同样担心两种情况下的截断问题? 最佳答案