C ++代码找不到文件

时间:2012-09-11 00:08:05

标签: c++ list ifstream

我正在尝试创建一个将连接的程序(将两个整数列表一起添加) 每个列表都存储为文本文件。我希望C ++程序打开list1.txt和list2.txt

我实际上无法让它工作。我已经分别列出了两个整数名列表list1和list2但是我得到的输出找不到list1。

#include <iostream>
#include <fstream>
#include <ostream>

using namespace std;

int main()
{
   ifstream findlist1("list1.txt", ios::in | ios::binary);
   if(!findlist1)
   {
      cout << "Cannot find list 1.\n";
      return 1;
   }
   ifstream findlist2("list2.txt", ios::in | ios::binary);
   if(!findlist2)
   {
      cout << "Cannot find list 2.\n";
      return 1;
   }
   ofstream out("list3out.txt", ios::out | ios::binary);

   if(!out)
   {
      cout << "Unable to output file ";
      return 1;
   }

   out << in1.rdbuf();
   out << " " << flush;
   out << in2.rdbuf();

   return 0;
}

编辑=解决方案:

我的文件名为test1.txt,因此作为test1.txt.txt出现在程序中

2 个答案:

答案 0 :(得分:2)

代码看起来很好,您可以尝试使用绝对路径或将文件放在可执行文件的同一目录中

答案 1 :(得分:0)

如果您使用的是Visual Studio,则所有相对路径都相对于项目的working directory。默认似乎是项目目录 - 这意味着如果在C:\SolutionX\ProjectY\Build\ProjectY.exe中尝试打开路径“file.txt”,Windows将查找C:\SolutionX\ProjectY\file.txt。如果您想更改此目录,该设置将在项目的调试下的配置属性中显示为“工作目录”。

请注意,如果您手动双击可执行文件而不是通过Visual Studio运行它,则其工作目录将是其当前位置。如果您从命令行运行程序,则工作目录将是命令行中的工作目录。