需要如何测试传递给函数的ostream的帮助/建议
Need help/advice on how to test an ostream passed to a function
我有一个函数,它获得传递给它的ostream。我需要测试ostream以确保它能工作。我将print语句放在try块中,并使用catch语句捕获所有异常。现在要测试这是否有效,我需要一点帮助来创建一个坏的ostream来传递函数。
我试过了:
filebuf buffer;
ostream& out = ostream(&buffer);
test1.print(out);
但是当我测试它时,我不能得到我的错误信息打印。有什么更好的方法来创建一个坏的ostream传递给函数呢?
还有,是否有比使用try-catch块更好的方法来检查ostream ?
不能打开任何文件的ofstream
呢?
流在不工作时通常不会抛出异常,所以无论操作成功与否,我都不希望打印错误消息。
ios
基类有一个叫做exceptions
的函数可以用来控制它,但是写一个像这样改变参数状态的函数是相当反社会的,所以你可能必须确保恢复它(即使它抛出一个异常…)
通常测试流上操作是否成功的方法是使用if
。如果一切正常,流计算结果为真值,否则计算结果为假值——我指的是就条件而言为真/假的值,而不是bool
值true
或false
。
精确地说,如果设置了failbit或badbit,则为false。
相关文章:
- C++ 模板类无法修复 ostream 和 istream 函数
- 关于 std::ostream 构造函数
- 我们如何将Ostream函数作为类的成员函数实现,而不是作为朋友函数,以便我可以用作虚拟函数
- 动态数组模板类:ostream&运算符友元函数的问题
- 在Ostream Overload Friend函数中使用向量
- 在ostream函数中使用字符串流
- C++ 多项式复制构造函数和 ostream 覆盖导致模因泄漏?
- 打印任何带有非成员ostream重载函数的c++11数组
- 在ostream函数中使用递归函数作为输出
- C ++使用类型为void或std::ostream的函数&do prints?
- 在C++中使用非友元方法重载 I/O 运算符 |&istream 和 &ostream 函数
- 没有合适的默认构造函数可用于初始化 ostream 指针
- 函数中的setw返回一个ostream
- 如何理解函数 ostream&operator<< (ostream& os, const unsigned char* s)
- Ostream友元函数的特化模板类
- 关于ostream以及如何在main函数中使用
- 定义ostream操作符的友元函数
- 重写std::ostream flush()函数,不被std::flush调用
- 如何使用"char *filename"在构造函数中初始化"ostream &out"
- 创建一个接受ostream引用并输出给它的函数的正确方法是什么?