ifstream.open()未打开文件
ifstream.open() not opening file
今晚我做了一场噩梦,试图实现一些非常简单的I/O功能。尽管很尴尬,我还是得到了这里人的大力帮助!
我目前的问题是,我正在尝试使用ifstream.open((,但它根本没有打开文件。这是通过getline(ifstream,line(确认的;第一次调用时返回false。
这是当前代码的复制粘贴:
std::string FSXController::readLine(int offset, FileLookupFlag flag)
{
// Storage Buffer
string line;
streampos sPos(offset);
try
{
// Init stream
if (!m_ifs.is_open())
m_ifs.open("C:\Users\guyth\Documents\test.txt", fstream::in);
}
catch (int errorCode)
{
showException(errorCode);
return "";
}
// Set stream to read input line
m_ifs.seekg(sPos);
if (!getline(m_ifs, line))
return "";
// Close stream if no multiple selection required
if (flag == FileLookupFlag::single)
m_ifs.close();
return line;
}
这段代码处于"bug修复模式",因此非常混乱,不用太担心,当这个方法最终工作时,会进行清理。
我试过:
- 绝对文件路径
- 将路径保存到字符串中,然后调用.c_str((方法
- 在管理员模式下运行VS 2015
- 确保文件具有读/写访问权限
- 确保没有重复的文件扩展名
- 是的,文件肯定有内容!:D
我现在有点没主意了,真的不知道为什么这个文件拒绝加载。
条件:if (!getline(m_ifs, line))
重复返回true…:(
编辑:我刚刚尝试在打开后立即检查m_ifs.fail()
,它返回true,所以我们知道失败标志被触发了:/
感谢
Guy
在打开流之前启用异常:
m_ifs.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
否则m_ifs.open
不会投球。
你必须赶上std::ifstream::failure
:
try {
m_ifs.open("C:\Users\guyth\Documents\test.txt", fstream::in);
}
catch (std::ifstream::failure e) {
std::cerr << "Exception opening file: " << std::strerror(errno) << "n";
}
有关详细信息,请参见ios::exceptions
。
相关文章:
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- 我可以对"int 文件 = open(path, flag);"做点什么吗?
- 进口。TLB文件给出"cannot open source file x.tlh"
- Open() 用于创建文件和打开现有文件.有人能分辨出其中的区别
- 成功使用CMakeLists制作后如何修复"open: No such file or directory"错误(该文件实际上存在)
- 为什么打开许多文件时"open file failed"?
- 已安装 SDK 的头文件的"Cannot open source file"
- 如何使用 C/C++检查 ZIP 文件(Office Open XML 文件)的完整性
- 读取视频文件"Open CV WARNING: Couldn't read movie file bird.avi"时出现问题
- C++ 中的文件处理错误 - 调用"std::basic_fstream<char, std::char_traits<char> >::open(const char[8],
- open() 的参数:每个人都应该拥有对文件的所有访问权限,并且应该在创建时被截断
- 包括新文件夹中的头文件 "cannot open include file - no such file or directory"
- 系统调用 open() 创建可执行文件
- 使用ofstream或fstream-open不会出错,也不会打开文件
- Qt/QML:如何在不重新启动应用程序的情况下"switch to"或"open"另一个 QML 文件?
- Qt:如何通过外部程序打开文件,"open with..."对话框
- 文件打开时"QIODevice::write: device not open"
- "Error C1083: Cannot open include file"但我有包含文件的路径
- file.open()找不到文件、c++、Xcode、OpenGL