2

read.txt という名前のファイルがE:\My_project\dictionary database\read.txtあり、次のようになります

1245
15
12
454564
122
....

read.txt を 1 行ずつ読み取り、これらの値をベクトルに保存し、最終的にベクトルを出力して、ベクトルの値を write.txt という名前の別の txt ファイルに書き込みます。C ++でこれを行うにはどうすればよいですか???

次のようにファイルから値を読み取ろうとしました:

  ifstream ifs("read.txt", ifstream::in);

しかし、read.txt ファイルの保存場所がわかりません。read.txt と write.txt の場所は何ですか?

編集:ベクトルを使用してテキストからの入力を保存すると、エラーが発生します:

int textLine;
  vector<int> input;

  ifstream ifs("C:\\Users\\Imon-Bayazid\\Desktop\\k\\read.txt", ifstream::in);

  if (ifs.good())   {

        while (!ifs.eof()) {
              getline(ifs, textLine);
              input.push_back(textLine);
        }

        ifs.close();

  } else
      cout << "ERROR: can't open file." << endl;


        for(int i=0;i<input.size();i++)
          cout<<input.at(i);
4

3 に答える 3

1

バイナリが にある場合E:\My_projectは、開くファイルのパスを調整する必要があります。 ifstream ifs("./dictionary database/read.txt", ifstream::in);

この関連する質問を参照してください。

于 2013-03-02T08:49:29.013 に答える
1

ファイルの名前は にハードコードされているため"read.txt"、ファイルは実行可能ファイルと同じフォルダーにある必要があります。ファイルの場所が変更されない場合は、フル パスをハードコーディングできます。

ifstream ifs("E:\\My_project\\dictionary database\\read.txt", ifstream::in);

(二重のバックスラッシュに注意してください。これは、C++ コンパイラがそれらを通常のスラッシュとして扱うためのものです)。

于 2013-03-02T08:50:11.560 に答える
1

ファイルを開くときに、ファイルの絶対パスを指定できます。

ifstream ifs("E:\\My_project\\dictionary database\\read.txt", ifstream::in);

または、ファイルと同じディレクトリにあるファイルを読み取る実行可能プログラムを移動できます。

編集:

ベクトルを次のように宣言するvector<int> input;と、整数値のみを格納できるベクトルが作成されますが、file( textLine) から読み取っているのは文字列です。ファイルの数値を整数値として解釈するだけの場合は、使用する必要があります

input.push_back(atoi(textLine.c_str()));
于 2013-03-02T08:50:19.793 に答える