草庐IT

在C中以2个或以上的数字为char

我必须编写一个将数字作为字符的程序,然后找到其二进制文件,因此我使用了此代码:屏幕截图#include#includeintmain(){intoperation,basetype,k=1,k2=1,binary=0,binary2=0,remainder,remainder2,binaryzero=0000;charnum1,num2;printf("Pleaseenterthenumberoftheoperationyouwouldliketoperform:");printf("\n1.BitwiseOR\n2.BitwiseNOT\n3.BitwiseCOMPARE\n4.Exit")

c++ - 如何将 tr1/array 转换为 std::string?

我想知道如何投std::tr1::array到std::string?编译器总是报错,我试过了std::tr1::arraysss;string(sss);stringasd(sss);两者都有效... 最佳答案 unsignedchar让这变得棘手。如果您知道您的系统使用2s补码1字节8位unsignedchar和char,以及从unsignedchar到char的隐式转换做你想做的(这些并不总是正确的!),并且你的数组缓冲区是null终止的(即,第一个0之后的字符应该被丢弃),这个函数有效:templatestd::string

c++ - 无法写入文件中的数据,程序C++没有错误

我无法在类中使用这些指针变量向文件写入数据。程序没有错误,但文件中没有写入数据。请有人告诉我我做错了什么。#include#includeclassstudentinfo{private:/*CreatingPrivateDataMembers*/char*VUID;char*campusID;char*Studentname;char*Fathername;public:voidStorefile();/*FunctiontoStoreDataintheFile*/charDisplay();/*FunctiontoReadandthenDisplayDatafromtheFile*

c++ - 在没有 typedef 的情况下在 C++ 中返回函数指针时出错

我试图在不使用typedef的情况下返回指向函数的指针,但编译器(gcc)发出了一个奇怪的错误,就好像我无法进行那种设置一样。备注:使用typedef代码有效。代码:voidcatch_and_return(void(*pf)(char*,char*,int&),char*name_one,char*name_two,int&number)(char*,char*,int&){pf(name_one,name_two,number);returnpf;}错误:'catch_and_return'声明为返回函数的函数你能给我解释一下为什么编译器不允许我这样做吗?谢谢!

c++ - 我是否正确理解了所有这些指针所指向的内容?

我创建了一个程序,它创建了三个C字符串,然后是一个指针数组,其大小与我创建的C字符串的数量相同(3),数组中的每个指针指向每个字符串的第一个字符三个字符串,最后是指向指针数组的指针(指向数组中的第一个指针)。代码如下:intmain(){chararr1[]="hello";chararr2[]="dear";chararr3[]="world";char*p1[3];*p1=arr1;*(p1+1)=arr2;*(p1+2)=arr3;char**ptr=p1;}但是,当我做类似std::cout的事情时我希望它只输出指针数组中第一个指针的地址。然而,它实际上打印出整个单词"hell

c++ - 构造函数不能采用非常量引用

我有以下类(class):classFoo{public:explicitFoo(std::vector&functionCalls){}};typedefboost::shared_ptrFooPtr;我尝试这样使用:std::vectorfunctionCalls;FooPtrfoo=boost::make_shared(functionCalls);我在VS20012中编译良好,但在gcc4.3.4中无法编译。这是编译器错误:boost/boost_1_54_0/boost/smart_ptr/make_shared_object.hpp:Infunction'typenameb

c++ - 字符数组,\0

我知道,如果你将字符数组与需要\0的函数一起使用,比如cout,那么字符数组末尾的\0是必须的,否则出现意外的随机字符。我的问题是,如果我只在my函数中使用字符数组,一个字符一个字符地读取它,我是否需要存储\0最后呢?此外,仅填充字符并在数组上留空是个好主意吗?考虑以下几点:charchars[5];chars[1]=15;chars[2]=17;chars[3]='c';//codeusingthechars[1]andchars[3],butneverusingthecharsinty=chars[1]+chars[3];cout上述代码是否存在意外错误的风险?EDIT:编辑示例。

c++ - 如果覆盖 char 数组的边界,为什么 strcat_s 会崩溃?

我知道,已经有很多关于这个主题的帖子,但我没有找到任何令人满意的帖子。连谷歌都不是我的friend。所以,首先是我的代码:voidsecureCat(){constintBUFFERSIZE=5;charbuffer[BUFFERSIZE];strcpy_s(buffer,BUFFERSIZE,"01");cout我在带有MSVS2010的Windows上玩过这段代码,遇到了以下问题:strcat_s的第一次调用工作正常,这对我来说很清楚,因为新字符串的大小("01"+"2"+NUL字符)小于缓冲区大小。但是,当超过缓冲区大小时,为什么第二个调用会崩溃?据我了解MSDN,我应该得到一个

c++ - 关于指针的一些问题

我在读高中三年级,目前正在学习C++。由于我们已经完成了我们需要了解的关于一般编程的所有内容(循环、if语句、函数、结构、数组和二维数组),我们开始了二进制/文本文件,我认为在我们学习文件的同时学习内存管理。首先,我现在正在尝试学习指针,因为如果我理解正确的话,在OOP中它们是必须的。其次,我想知道计算机是如何工作的,正在发生的事情背后是什么。现在,我制作了这一小段代码intmain(){chary;char*x;x=&y;cout>x;cout它可以工作,但是当程序关闭时,我收到一条错误消息,指出变量“y”周围的堆栈已损坏。如果我没有混淆,堆栈是动态内存,堆是静态内存,想想我得到这个

c++ - int8_t 和 char : converts between pointers to integer types with different sign - but it doesn't

我正在处理一些嵌入式代码,并且正在从头开始编写一些新东西,因此我更愿意坚持使用uint8_t、int8_t等类型。然而,当移植一个函数时:voidfunctionName(char*data)到:voidfunctionName(int8_t*data)在将文字字符串传递给函数时,我收到编译器警告“在指向具有不同符号的整数类型的指针之间转换”。(即调用functionName("putthistextin");时)。现在,我明白了为什么会发生这种情况,并且这些行只是调试,但我想知道人们认为什么是最合适的处理方式,而不是对每个文字字符串进行类型转换。在实践中,我不认为一揽子类型转换比使用