У меня есть цикл, который читается по строкам. В цикле у меня есть блок if, который проверяет, не является ли строка не нулевым байтом. Когда строка содержит более одного нулевого байта, оператор if возвращает true.Проверьте, нет ли строки nullbytes
Мне нужен способ проверить, заполнена ли строка нулевыми байтами.
Block block = this->mMemblockDevice->readBlock(parent);
std::stringstream inputPath(block.toString());
std::string segment;
std::string contentNew = "";
while(std::getline(inputPath,segment)){
if(segment != "\0"){ // If a/is last then a null byte
contentNew += segment + "\n"; //Check size after every line
std::cout << " Line Size: " << contentNew.size() << " Line: " << segment << std::endl;
}
}
Причина, почему я должен проверить нулевых байтов является то, что я пишу в класс, который требует размер, чтобы быть ровно 512 символов/байт большой, поэтому я content.resize(512, '\0');
Теперь мне нужно, чтобы добавить символы в строке, так что я нужно удалить нулевые байты, чтобы я мог добавлять символы.
БППП :: соиЬ в обходных выходах этого:
Line Size: 3 Line: 0/
Line Size: 5 Line: 0
Line Size: 513 Line:
почему бы не просто использовать содержание [я] после того, как изменить размер, чтобы установить символы? вы можете даже использовать простой старый memcpy, чтобы выполнить работу – Paladin