0

連結する (整数の 2 つのリストを一緒に追加する) プログラムを作成しようとしています。各リストはテキスト ファイルとして保存されます。C++ プログラムで list1.txt と list2.txt を開きたい

私は実際にそれを機能させることはできません。list1 と list2 という名前の整数の 2 つのリストをそれぞれ入れましたが、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 に答える