在根目录中打开文本文件

时间:2014-12-24 18:01:28

标签: c++ file-io

我制作了一个简单的评分系统,在正确答案后,将玩家的号码存储在档案中。 我使用了这样的文件名:

ofstream outfile ("C:\Aadam\Desktop\Project\Scores.txt",ios::app);

但这种方法的问题在于,如果我将程序移到USB并尝试在另一台计算机上运行,​​该怎么办?现在它将在我上面指定的目录中查找,但那里没有 Scores.txt 文件。
我想要做的是给它一个在项目文件夹中的路径。因此,当我移动程序时,它不应该有所作为,因为我将移动整个项目文件夹。 我当然可以这样做:

ofstream outfile ("Scores.txt",ios::app)

它总是在项目目录中查找,只要我从 IDE 运行程序就可以正常工作,但如果我从 .exe 文件,它是两个目录,如

  

" C:\光顾Aadam \桌面\项目\ BIN \调试\ Project.exe"

现在在这种情况下,它无法打开文件。 所以,如果你知道一个打开文件的好方法,那就告诉我吧......

3 个答案:

答案 0 :(得分:1)

你可以解析argv [0](它将包含用于调用你的可执行文件的路径 - 绝对或相对的),并用“Scores.txt”替换它中的可执行文件名

答案 1 :(得分:0)

最简单的方法是将文件路径作为参数传递给程序。

从IDE运行程序时,项目目录被视为当前工作目录。如果程序是从命令行运行的,则当前工作目录来自运行命令的位置。

答案 2 :(得分:0)

如果运行exe文件,ofstream outfile ("Scores.txt",ios::app)将创建一个名为" Scores.txt"的文件。与您的程序在同一目录中。