Picky STD :: String Char Array构造函数

Picky std::string char array constructor

本文关键字:Array 构造函数 Char String STD Picky      更新时间:2023-10-16

好吧,我可能很愚蠢,但是我不知道字符串构造函数要我输入哪种类型作为第二个参数。这很好:

unsigned char *cStringWannabe = new unsigned char[length];
baseStream.read((char*)cStringWannabe, length);
std::string *str = new std::string(cStringWannabe, cStringWannabe+sizeof(cStringWannabe));

但是,这使大小超过一个,没有任何意义。

我不知道要施放sizeof(cStringWannabe)以取悦构造函数。

编辑:

好吧,因为我在这里有很多层次上错了,所以时间可以澄清事情。

我想要一个可以从fstream中读取单个字符的函数,将该字符解释为字符串的长度,然后将以下(长度(字符读取到字符串对象中。

我希望如果将功能指向现有字符串的指针,然后将其修改以包含新数据。

您无法将其投入任何东西以取悦构造函数。在这里使用sizeof是错误的,因为它为您提供指针的大小,而不是字符串的长度。如果有的话,您想要:

 std::string *str = new std::string(cStringWannabe, length);

您几乎永远不想这样动态分配字符串,所以:

 std::string str(cStringWannabe, length);

,您想这样阅读这样的字符串很怀疑:

baseStream.read((char*)cStringWannabe, length);