我正在尝试ver
从二进制文件读取string()。numc
字符串中的字符数()也从文件中读取。这就是我读取文件的方式:
uint32_t numc;
inFile.read((char*)&numc, sizeof(numc));
char* ver = new char[numc];
inFile.read(ver, numc);
cout << "the version is: " << ver << endl;
我得到的是我期望的字符串以及其他一些符号。我怎么解决这个问题?
甲char*
字符串是一个NUL终止字符序列。您的代码将忽略nul终止部分。这是它的外观
uint32_t numc;
inFile.read((char*)&numc, sizeof(numc));
char* ver = new char[numc + 1]; // allocate one extra character for the nul terminator
inFile.read(ver, numc);
ver[numc] = '\0'; // add the nul terminator
cout << "the version is: " << ver << endl;
还sizeof(numc)
没有size(numc)
,虽然也许这是一个错字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句