去溢出功能文档。我发现溢出跟随返回值。
返回值:
不同于EOF的值(或其他特征的traits :: eof())表示成功。
如果函数失败,则返回EOF(或其他特征的traits :: eof())或抛出异常。
来源:“http://www.cplusplus.com/reference/iostream/streambuf/overflow/”
任何人都可以告诉我哪些sceanrios溢出功能通过例外? 任何帮助将不胜感激
答案 0 :(得分:1)
Streambuf是流的底层存储或通信通道的抽象。由于存储或通道可能出现故障的任何原因,overflow()函数可能会失败。例如。磁盘文件的磁盘错误,套接字的连接断开等。
答案 1 :(得分:0)
虽然wilx详细说明了失败(EOF
)条件,但异常条件可以是以下任何一种:http://www.aoc.nrao.edu/php/tjuerges/ALMA/STL/html-3.4.6/classstd_1_1exception.html(你猜哪一个?:) - 但它应该(显然)是std::overflow_error
如果您正在编写自己的输出流或其他内容。
答案 2 :(得分:0)
在我有问题的情况下它是faling因为它没有跳过下一个地址(setp调用递增0)所以重试使用相同的内存区域并且给出了分段错误。