0

我正在尝试创建一个程序,它将连接(将两个整数列表添加在一起)每个列表都存储为文本文件。我希望 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

4

2 回答 2

2

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

于 2012-09-11T00:20:47.283 回答
0

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

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

于 2012-09-11T01:09:38.603 回答