0

str() を使用して ostrstream の内容を読み取ろうとしています。そうしようとすると、常にアクセス違反に遭遇し、アプリケーションがクラッシュします。ストリーム エラーを発生させずに strstream から読み取る方法はありますか?

Borland C++ で構築されたレガシー プロジェクトに取り組んでいます。現在、プロジェクトのビルドに Borland C++ v5.02 を使用しています。コードは膨大で多数のファイルに分散しているため、ここにコードを貼り付けることができません。ただし、ユースケースを強調しようとします。

ps は、レシートを印刷するためにプロジェクト全体で使用されているストリームです。コードを壊さずに、この strstream から受信データを取得する必要があります。

文字列 str = ps.pStr->str ();

ps.Pstr->rdbuf ()->フリーズ (0);

ps << EndJob;

最後の行でアクセス違反が発生する

4

1 に答える 1

0

バッファの最後に null を設定しませんでした。

Before any call to str() that uses the result as a C string, the buffer must be null-terminated, typically with std::ends.
于 2016-10-07T09:40:15.647 に答える