我使用VS2012写了一个小VC ++程序并试图读取文本文件。我把文件放在release文件夹中。但是,在使用绝对文件目录之前,我无法读取该文件。我在网上找不到有用的信息。代码就像这样
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
string test;
ifstream myfile;
myfile.open("E:\\Glus\\Project2\\Release\\bunny.txt");
if(myfile.is_open())
{
string s0,s1;
int x0, x1;
myfile>>s0>>x0;
cout<<s0<<x0<<endl;
myfile>>s1>>x1;
cout<<s1<<x1<<endl;
}
else
{
cout<<"Error in reading file!"<<endl;
}
myfile.close();
cin>>test;
return 0;
}
谢谢!
答案 0 :(得分:2)
路径不是相对于可执行文件,而是相对于当前目录(请参阅_getcwd
)。
如果您从VC启动应用程序,请尝试
"..\\Release\\bunny.txt"
对于真实应用程序,我建议检测可执行文件的路径并使用它来构造数据文件的路径。它更可靠,更安全。
答案 1 :(得分:0)
Visual Studio不会将您的程序保存在您运行它的确切位置,实际上它会将其保存在项目文件夹中与项目名称相同的文件夹中 您可以使用以下命令获取当前工作路径:
system("cd");
它可以解决您的问题,找到您的文件。