Вы создаете поток строк, пишете то, что хотите, используя оператор <<, а затем извлекаете строку из потока с помощью функции-члена .str ().

я есть некоторый код C ++, который должен генерировать сообщение об ошибке при синтаксическом анализе определенного заголовка файла. В этом случае мне нужно убедиться, что определенное 4-байтовое поле в заголовке равно «OggS», а если нет, вернуть сообщение об ошибке, например «недопустимый capture_pattern:« FooB »; ожидается« OggS »». Мой код выглядит примерно так:

const string OggPage::parseHeader(void) {
  read(fd, capture_pattern, sizeof(capture_pattern)); // error handling omitted
  if (strncmp(capture_pattern, CAPTURE_PATTERN, sizeof(capture_pattern)) != 0) {
    char err[256];
    snprintf(err, sizeof(err), "Failed to read %d bytes from file descriptor %d: %s\n", sizeof(capture_pattern), fd, err);
    return err;
  }

  return "Everything was A-OK!";
}

Какова стандартная идиома C ++ для построения строки из других типов данных? Я не преданprintf(3)стиль здесь, так что не стесняйтесь предложить все, что работает.

Ответы на вопрос(5)

Ваш ответ на вопрос