Попытка чтения содержимого из strstream приводит к нарушению доступа

Я пытаюсь прочитать содержимое ostrstream с помощью str (). Пытаясь это сделать, я всегда сталкиваюсь с нарушениями доступа, и мое приложение вылетает. Есть ли способ читать из strstream, не вызывая ошибок потока?

Я работаю над устаревшим проектом, основанным на Borland C++. В настоящее время я использую Borland C++ v5.02 для создания своего проекта. Так как код обширный и разбросан по большому количеству файлов, я не могу вставить код сюда. Тем не менее, я постараюсь выделить мой вариант использования.

ps - это поток, который используется в проекте для печати квитанций. Мне нужно получить данные чека от этого strstream, не нарушая код.

строка str = ps.pStr-> str ();

ps.Pstr-> rdbuf () -> freeze (0);

ps << EndJob;

Последняя строка вызывает нарушение доступа

1 ответ

Вы пропустили установку нуля в конце буфера.

Before any call to str() that uses the result as a C string, the buffer must be null-terminated, typically with std::ends.
Другие вопросы по тегам