0

浏览溢出函数文档。我发现溢出有以下作为返回值。

返回值:

与 EOF 不同的值(或其他特征的 traits::eof() )表示成功。

如果函数失败,则返回 EOF(或其他特征的 traits::eof() )或抛出异常。

来源:“ http://www.cplusplus.com/reference/iostream/streambuf/overflow/

谁能告诉我溢出功能在哪个场景中会通过异常?任何帮助将不胜感激

4

3 回答 3

1

Streambuf 是流的底层存储或通信通道的抽象。由于存储或通道可能失败的任何原因,overflow() 函数可能会失败。例如磁盘文件的磁盘错误,套接字的连接断开等。

于 2010-09-20T07:15:09.660 回答
0

尽管 wilx 详细说明了失败 ( EOF) 条件,但异常条件可以是以下任一条件:http ://www.aoc.nrao.edu/php/tjuerges/ALMA/STL/html-3.4.6/classstd_1_1exception.html (可以你猜是哪一个?:) - 但std::overflow_error如果你正在编写自己的输出流或其他东西,它应该(显然)是。

于 2010-09-20T07:23:34.400 回答
0

在我有问题的场景中,它失败了,因为它没有跳转下一个地址(setp 调用递增 0),因此重试使用相同的内存区域并给出分段错误。

于 2010-09-28T06:27:49.387 回答