文件输出中的简单错误检查
Simple error checking in file output
所以我有一个关于在while循环中使用ofstream的问题。假设我有一个大小X
数组,我想遍历该数组并将项目输出到文件。以下代码是否足以进行错误检查?如果是这样(或不是这样),为什么?
char arr[X];
ofstream fout("out.txt");
for(int i=0;i<X;i++)
{
while(!(fout<<arr[i]){}
}
在编写char
时,没有太多可能出错的事情。可能发生的唯一错误是流的std::streambuf
报告错误 overflow()
.这经过您的测试的充分测试。也就是说,成功缓冲字符并不意味着写入缓冲区会成功。要测试写入是否成功,您还需要测试fout.close()
是否成功!析构函数中的隐式close()
只会吞下任何错误。
但请注意,一旦流进入失败状态,它将停止执行任何有用的操作,直到在流上调用clear()
。换句话说,如果在写入流时出错,您最终只会得到无限循环。即使调用clear()
,我也不会期望底层流缓冲区会做任何不同的事情,即,我希望它再次失败。也就是说,如果你真的关心这些错误,你需要想出一个比"再试一次"更好的错误处理策略!
相关文章:
- C++中的输入限制和错误检查
- 在错误检查非 int 的内容时,控制台被淹没
- C++ 错误检查 fstream open() 命令和一般字符串流错误处理
- 运行时与编译时多态性:更好的可读性与编译时错误检查,更重要的是
- NPP 和 CUDA 错误检查
- 在此程序中获取错误:检查两个数组是否相等
- 错误 ~ 检查字符是否为小写字母
- 同时循环到错误检查 C++
- clang format函数和错误检查在同一行
- 使用宏进行赋值和错误检查
- 在C++中将命令行字符参数解析为int并进行错误检查
- 使用 Makefiles 在 Eclipse CDT 中进行错误检查
- 数据文件处理中的错误检查是否可以打开文件 - 为什么会发生
- 通过错误检查将参数转换为整数
- 这种错误检查方法的性能会不会太高
- C++通过错误检查将sscanf代码改编为distingstream
- 在windows错误检查中使用c++向gmail帐户发送电子邮件
- C++ 卷曲文件下载 - 错误检查
- 通过错误检查将 wstring 转换为双精度的方法
- 如何使用标准库函数通过错误检查将字符串 (char*) 转换为数字