草庐IT

GL_UNSIGNED_BYTE

全部标签

c++ - 如何从 std::ifstream 将文件读入 unsigned char 数组?

所以通常我会做这样的事情:std::ifstreamstream;intbuff_length=8192;boost::shared_arraybuffer(newchar[buff_length]);stream.open(path.string().c_str(),std::ios_base::binary);while(stream){stream.read(buffer.get(),buff_length);//boost::asio::write(*socket,boost::asio::buffer(buffer.get(),stream.gcount()));}strea

c++ - 如何在从 Linux 移植的 C++ 项目中使用 Open GL

我刚刚尝试在我的Mac上编译一个开源C++应用程序。我收到错误GL/gl.h文件未找到。我知道这意味着它找不到需要编译和运行的开放式GL库。我对下一步该做什么感到困惑,因为似乎OSX包含对opengl的内置支持。有nothing去下载。对于OSX和Linux上的OpenGL,头文件名称似乎可能不同(OpenGLheadersforOSX&Linux)所以我对下一步该做什么感到困惑。我是否下载OpenGL并将其链接到我的项目?我是否将xcode配置为使用native版本的OpenGL?我要更改标题吗?有人可以提供更多指导吗?这个答案给出了windows/linux的答案——但不是OSX:

c++ - 警告 : Comparison between signed and unsigned integer expression

我在codepad.org上运行以下代码时出现此错误。“在成员函数‘doubleXchange::getprice(std::string)’中:第87行:警告:有符号和无符号整数表达式之间的比较”这是我的代码:#include#include#includeusingnamespacestd;classXchange{public:Xchange();//doesnothing(?)doublegetprice(stringsymbol);private:vectorstocks;};doubleXchange::getprice(stringsymbol){for(inti=0;i

c++ - 如果我尝试在 C++ 中将大于 pow(2,64)-1 的值分配给 unsigned long long 会怎样?

如果我有两个unsignedlonglong值,比如pow(10,18)和pow(10,19),我将它们相乘并将输出存储在另一个unsignedlonglong类型的变量中……我们得到的值是显然不是答案,但它有任何逻辑吗?每次我们尝试使用任意大的数字时,我们都会得到一个垃圾类型的值,但是输出与输入值有任何逻辑吗? 最佳答案 C++中的无符号整数类型遵循模运算规则,即它们表示对2N取模的整数,其中N是数字整数类型的值位(可能小于其sizeof倍CHAR_BIT);具体来说,该类型包含值[0,2N)。因此,当您将两个数字相乘时,结果是数

c++ - 如何将 unsigned char[] 转换为 std::vector<unsigned char>

我正在尝试将其传递给我的项目的另一部分,该部分要求它是一个vectorunsignedcharvch[65];unsignedintsize()const{returnGetLen(vch[0]);}constunsignedchar*begin()const{returnvch;}constunsignedchar*end()const{returnvch+size();std::vectorRaw()const{return(vch,vch+size());}我得到了错误couldnotconvert'(constunsignedchar*)(&((constCPubKey*)th

c++ - 隐式转换将符号 'int"更改为 'unsigned int"

我正在使用clang++编译程序,我需要在clang++中正确编译它。我在其他编译器上没有错误。代码中的错误行是memset(grid_,0,sizeof(int)*x_quadrants*y_quadrants);整个函数是这样的:Ocean::Ocean(intnum_boats,intx_quadrants,inty_quadrants){grid_=newint[x_quadrants*y_quadrants];memset(grid_,0,sizeof(int)*x_quadrants*y_quadrants);x_quadrants_=x_quadrants;y_quadr

c++ - 如何通过 unsigned long 将 std::shared_ptr 传递给回调?

我有一个旧的C风格库,它使用带有unsignedlong作为用户参数的回调,我想将我的shared_ptr传递给回调,以便增加引用计数。voidcallback(unsignedlongarg){std::shared_ptrptr=???arg???}voidstarter_function(){std::shared_ptrptr=std::make_shared();unsignedlongarg=???ptr???//passtolibrarysoitmaybeusedbycallback}目前我在shared_ptr上使用get(),然后使用C风格的强制转换,但这会在star

c++ - 如何从 unsigned long 转换为 void*?

我正在尝试在具有给定文件描述符的文件的某个偏移处pwrite一些数据。我的数据存储在两个vector中。一个包含unsignedlong和其他char。我想构建一个void*指向代表我的unsignedlong和char的位序列,并将它传递给pwrite以及累积大小。但是如何将unsignedlong转换为void*?(我想我可以找出字符)。这是我正在尝试做的事情:voidwriteBlock(intfd,intblockSize,unsignedlongoffset){void*buf=malloc(blockSize);//hereIshouldbetryingtobuildbuf

c++ - 将 -1 分配给 unsigned int 以获得最大值是否安全?

如果我需要获取最大值,将-1分配给无符号整数或其他无符号C++数据类型是否安全?是否存在无法提供无符号数据类型可包含的最高值的情况? 最佳答案 为了安全起见,请使用std::numeric_limits::max().将-1转换为unsigned可以在主流平台上运行,但标准AFAIR不能保证。UPD:我会纠正自己。(unsigned)-1在C中必须是UINT_MAX,参见答案here 关于c++-将-1分配给unsignedint以获得最大值是否安全?,我们在StackOverflow上

c++ - 为什么 ((unsigned int)x) * y == ((unsigned int)(x * y) 总是为真?

我刚刚写了这些代码:intx=-1;//xmustbenegativeunsignedinty=1;//ymustbepositiveboolb;for(;;x--,y++){b=((unsignedint)x)*y==((unsignedint)(x*y));}然后我才发现b总是为真。在我看来,((unsignedint)x)*y会溢出,但((unsignedint)(x*y))不会。我真的很难相信这是真的。这只是巧合还是有一定规律可循? 最佳答案 在x*y中,x作为通常算术转换的结果已经转换为unsigned。§5/10:即您的