0

オーバーフロー関数のドキュメントに目を通してください。オーバーフローの戻り値は次のとおりです。

戻り値:

EOF (または他の特性の traits::eof()) とは異なる値は、成功を示します。

関数が失敗した場合、EOF (または他の特性の traits::eof()) が返されるか、例外がスローされます。

出典 :" http://www.cplusplus.com/reference/iostream/streambuf/overflow/ "

オーバーフロー関数が例外を通過するシナリオを教えてください。どんな助けでも大歓迎です

4

3 に答える 3

1

Streambufは、ストリームの基盤となるストレージまたは通信チャネルを抽象化したものです。オーバーフロー()関数は、ストレージまたはチャネルが失敗する可能性がある何らかの理由で失敗する可能性があります。たとえば、ディスクファイルのディスクエラー、ソケットの接続の切断など。

于 2010-09-20T07:15:09.660 に答える
0

私の問題のあるシナリオでは、次のアドレスにジャンプしていなかったため (setp 呼び出しが 0 ずつ増加していたため)、同じメモリ領域を使用しようとして再試行し、セグメンテーション違反が発生していたため、失敗していました。

于 2010-09-28T06:27:49.387 に答える
0

wilx は fail ( ) 条件を詳述しましたが、EOF例外条件は次のいずれかになりますどれだと思いますか? :) -- しかしstd::overflow_error、独自の出力ストリームなどを作成している場合は (明らかに) そうあるべきです。

于 2010-09-20T07:23:34.400 に答える