文件在多个程序中持续无法打开
Files Continually Fail to Open in Multiple Programs
上周,我无法在Xcode中打开文件。我想知道为什么它不起作用,以及如何修复它。
我在这里和这里的堆栈溢出中发布了两个问题,收到了很好的建议,但没有解决方案。
此外,我在这里有另一个程序,它可以很好地打开文件,没有问题。。。我不知道为什么一个在打开文件,而另一个没有。(提醒,我最近的程序都没有打开文件。)
{更新:在这篇文章之前检查了上面的程序,现在它失败了,说文件不存在…这个程序昨天运行了,我对它做了没有更改。我保证它能工作……那么为什么我突然出现文件问题?}
可以肯定的是,我已经:
- 转到构建阶段>>复制文件>>添加文件,将两个文件添加到绝对路径
- 检查了文件的拼写和我的代码
这里有一个简单的程序,应该打开一个文本文件,然后打印内容,这些内容是"测试1 2 3"-,除非它没有:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
fstream inFile;
string words;
inFile.open("test.txt");
if (!inFile) {
cout << "Failure." << endl;
exit(1);
}
getline(inFile, words);
cout << words << endl;
return 0;
}
这个程序每次都会失败(我的其他程序也是如此)。
这是我的输出:
Failure.
Program ended with exit code: 1
在语句inFile.open("test.txt");
处设置断点,我得到:
Printing description of inFile:
(std::__1::fstream) inFile = {
std::__1::basic_iostream<char, std::__1::char_traits<char> > = {
std::__1::basic_istream<char, std::__1::char_traits<char> > = {
std::__1::basic_ios<char, std::__1::char_traits<char> > = {
std::__1::ios_base = {
__fmtflags_ = 4098
__precision_ = 6
__width_ = 0
__rdstate_ = 0
__exceptions_ = 0
__rdbuf_ = 0x00007fff5fbff4f8
__loc_ = 0x00007fff7b718c30
__fn_ = 0x0000000000000000
__index_ = 0x0000000000000000
__event_size_ = 0
__event_cap_ = 0
__iarray_ = 0x0000000000000000
__iarray_size_ = 0
__iarray_cap_ = 0
__parray_ = 0x0000000000000000
__parray_size_ = 0
__parray_cap_ = 0
}
__tie_ = 0x0000000000000000
__fill_ = -1
}
__gc_ = 0
}
std::__1::basic_ostream<char, std::__1::char_traits<char> > = {
std::__1::basic_ios<char, std::__1::char_traits<char> > = {
std::__1::ios_base = {
__fmtflags_ = 4098
__precision_ = 6
__width_ = 0
__rdstate_ = 0
__exceptions_ = 0
__rdbuf_ = 0x00007fff5fbff4f8
__loc_ = 0x00007fff7b718c30
__fn_ = 0x0000000000000000
__index_ = 0x0000000000000000
__event_size_ = 0
__event_cap_ = 0
__iarray_ = 0x0000000000000000
__iarray_size_ = 0
__iarray_cap_ = 0
__parray_ = 0x0000000000000000
__parray_size_ = 0
__parray_cap_ = 0
}
__tie_ = 0x0000000000000000
__fill_ = -1
}
}
}
__sb_ = {
std::__1::basic_streambuf<char, std::__1::char_traits<char> > = {
__loc_ = (__locale_ = 0x00007fff7b718c30)
__binp_ = 0x0000000000000000
__ninp_ = 0x0000000000000000
__einp_ = 0x0000000000000000
__bout_ = 0x0000000000000000
__nout_ = 0x0000000000000000
__eout_ = 0x0000000000000000
}
__extbuf_ = 0x0000000102001000 ""
__extbufnext_ = 0x0000000000000000
__extbufend_ = 0x0000000000000000
__extbuf_min_ = ""
__ebs_ = 4096
__intbuf_ = 0x0000000000000000
__ibs_ = 0
__file_ = 0x0000000000000000
__cv_ = 0x00007fff7b718a40
__st_ = (__mbstate8 = "", _mbstateL = 0)
__st_last_ = (__mbstate8 = "", _mbstateL = 0)
__om_ = 0
__cm_ = 0
__owns_eb_ = true
__owns_ib_ = false
__always_noconv_ = true
}
}
(lldb)
并且在if(!inFile)
处设置断点。。。我得到(在我看来完全一样):
Printing description of inFile:
(std::__1::fstream) inFile = {
std::__1::basic_iostream<char, std::__1::char_traits<char> > = {
std::__1::basic_istream<char, std::__1::char_traits<char> > = {
std::__1::basic_ios<char, std::__1::char_traits<char> > = {
std::__1::ios_base = {
__fmtflags_ = 4098
__precision_ = 6
__width_ = 0
__rdstate_ = 4
__exceptions_ = 0
__rdbuf_ = 0x00007fff5fbff4f8
__loc_ = 0x00007fff7b718c30
__fn_ = 0x0000000000000000
__index_ = 0x0000000000000000
__event_size_ = 0
__event_cap_ = 0
__iarray_ = 0x0000000000000000
__iarray_size_ = 0
__iarray_cap_ = 0
__parray_ = 0x0000000000000000
__parray_size_ = 0
__parray_cap_ = 0
}
__tie_ = 0x0000000000000000
__fill_ = -1
}
__gc_ = 0
}
std::__1::basic_ostream<char, std::__1::char_traits<char> > = {
std::__1::basic_ios<char, std::__1::char_traits<char> > = {
std::__1::ios_base = {
__fmtflags_ = 4098
__precision_ = 6
__width_ = 0
__rdstate_ = 4
__exceptions_ = 0
__rdbuf_ = 0x00007fff5fbff4f8
__loc_ = 0x00007fff7b718c30
__fn_ = 0x0000000000000000
__index_ = 0x0000000000000000
__event_size_ = 0
__event_cap_ = 0
__iarray_ = 0x0000000000000000
__iarray_size_ = 0
__iarray_cap_ = 0
__parray_ = 0x0000000000000000
__parray_size_ = 0
__parray_cap_ = 0
}
__tie_ = 0x0000000000000000
__fill_ = -1
}
}
}
__sb_ = {
std::__1::basic_streambuf<char, std::__1::char_traits<char> > = {
__loc_ = (__locale_ = 0x00007fff7b718c30)
__binp_ = 0x0000000000000000
__ninp_ = 0x0000000000000000
__einp_ = 0x0000000000000000
__bout_ = 0x0000000000000000
__nout_ = 0x0000000000000000
__eout_ = 0x0000000000000000
}
__extbuf_ = 0x0000000102001000 ""
__extbufnext_ = 0x0000000000000000
__extbufend_ = 0x0000000000000000
__extbuf_min_ = ""
__ebs_ = 4096
__intbuf_ = 0x0000000000000000
__ibs_ = 0
__file_ = 0x0000000000000000
__cv_ = 0x00007fff7b718a40
__st_ = (__mbstate8 = "", _mbstateL = 0)
__st_last_ = (__mbstate8 = "", _mbstateL = 0)
__om_ = 0
__cm_ = 0
__owns_eb_ = true
__owns_ib_ = false
__always_noconv_ = true
}
}
(lldb)
简单的回答是,我的项目被破坏了,因为它试图在以前项目已经存在的路径中运行项目。一旦我完全删除了这两个,然后重新开始,我的程序运行得很好。
虽然我没有对原始项目进行任何更改,但我在同一目录中启动了一个新项目,这导致了我所有的问题。
相关文章:
- make 命令创建 .file,但不创建应用程序文件
- C++对象文件和程序文件组合编译的 Bashrc 别名
- 程序文件中的安装路径:一些问题
- 词频程序 - 文件输入太大?
- 使用带有 MEX 包装器的帮助程序 C 文件从 MATLAB 2016 调用C++代码时出现问题
- 如何修复"无法打开包含文件'boost/config.hpp':没有这样的文件或目录(包括目录涵盖:C:\程序文件\boost\boost_1_67_0)
- MacOS应用程序文件关联
- Visual Studio - C++ - 以 32 位或 64 位构建和运行应用程序 - 从适当的程序文件目录加载 D
- Windows 8 应用商店应用程序C++文件访问
- 检索C++程序/文件中使用的指针变量列表
- Visual Studio使用多线程DLL发布应用程序文件
- 为什么不将.cpp转换为c程序文件呢
- C++获取程序文件目录,附加额外路径并执行
- C++创建程序文件中文件的进程
- 在应用程序文件夹中安装 C/C++ 库"IGRAPH"
- 使用 Dev-C++ 5.2.0.2 进行调试 - 调试时找不到程序文件 gdb.exe
- 创建无需任何外部执行即可连续侦听的守护程序文件
- Qt单一应用程序文件已打开
- 问题.所有功能都可以在发布文件夹中工作,但不能在程序文件中工作
- 应用程序文件没有在不同的mac上运行