Picky std::string char 数组构造器
Picky std::string char array constructor
好吧,我可能很笨,但我无法弄清楚字符串构造函数要我输入什么类型作为第二个参数。这很好:
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);
好吧,我可能很笨,但我无法弄清楚字符串构造函数要我输入什么类型作为第二个参数。这很好:
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);