去掉溢出函数文件。我发现溢出具有以下作为返回值。streambuf的溢出函数查询
返回值:
值大于EOF不同(或性状:: EOF(),用于其它性状)信号的成功。
如果函数失败,则返回EOF(或其他traits的traits :: eof())或抛出异常。
来源:“http://www.cplusplus.com/reference/iostream/streambuf/overflow/”
谁能告诉我在sceanrios是要通过异常溢出功能? 任何帮助将不胜感激
去掉溢出函数文件。我发现溢出具有以下作为返回值。streambuf的溢出函数查询
返回值:
值大于EOF不同(或性状:: EOF(),用于其它性状)信号的成功。
如果函数失败,则返回EOF(或其他traits的traits :: eof())或抛出异常。
来源:“http://www.cplusplus.com/reference/iostream/streambuf/overflow/”
谁能告诉我在sceanrios是要通过异常溢出功能? 任何帮助将不胜感激
在我有问题的情况下,因为它没有跳转下一个地址(setp调用正在增加0),所以重试使用相同的内存区域并给出了分段错误。
Streambuf是流的基础存储或通信通道的抽象。 overflow()函数可能因存储或通道可能发生故障的任何原因而失败。例如。磁盘文件的磁盘错误,插座断开的连接等。
尽管wilx详细说明了失败(EOF
)条件,但例外情况可以是以下任一种:http://www.aoc.nrao.edu/php/tjuerges/ALMA/STL/html-3.4.6/classstd_1_1exception.html(你能猜出哪一个?:) - 但它应该(显然)是std::overflow_error
,如果你正在编写自己的输出流或其他东西。
我不认为它是overflow_error,因为该异常用于“抛出以指示算术溢出”。我会试着去检查异常,看看什么是异常类型(我认为它是std :: ios_base :: failure)。感谢您和威尔克斯的帮助。 – user258367 2010-09-20 08:18:58