The*_*ist 5 c++ fstream casting ifstream ofstream
也许是一个虚假的问题,但我需要一个明确的答案.在返回任何这些功能时是否有任何不同
int FileExists(const std::string& filename)
{
ifstream file(filename.c_str());
return !!file;
}
int FileExists(const std::string& filename)
{
ifstream file(filename.c_str());
return file.is_open();
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我的问题是:将fstream转换为bool会给出与fstream :: is_open()完全相同的结果吗?
Zet*_*eta 10
否.is_open仅检查是否存在关联文件,而转换bool也检查文件是否已准备好进行I/O操作(例如,流处于良好状态)(自C++ 11起).
is_open检查文件流是否具有关联文件.
std::basic_ios::operator bool如果流没有发生错误并且已准备好进行I/O操作,则返回true.具体来说,回报
!fail().
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |