Попытка чтения содержимого из 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.