1

これをデバッグすると、 datafile1 が開き、最初の行が読み取られ、ログファイルで roma-3-4.log が取得されることがわかります

c:/temp/roma-3-4.log に変わりますが、開こうとすると失敗します。_Mystate = 2 であることを確認しました。その意味は何ですか

ありがとう

transfersubs.cfg には、この roma-3-4.log があります

* *ディレクトリ c:/temp/ に次のファイル roma-3-4.log があります

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;



int main()
{


  string input;
  string logfile;
  string errorfile;

  short logfilesize1;


   fstream dataFile1("c:/temp/transfersubs.cfg", ios::in);

  if (dataFile1)
  {
  getline(dataFile1, input, '$');
  logfile=input;
  logfilesize1=input.size();
  errorfile=input;
  errorfile[logfilesize1-4]='e';
  errorfile[logfilesize1-3]='r';
  errorfile[logfilesize1-2]='r';

  logfile="C:/Temp/"+logfile;

  fstream dataFile2( logfile, ios::in);

  if (dataFile2)
  {

dataFile2.close();
  }
   else
  {
    cout << "ERROR: Cannot open logfile.\n";
   }





    dataFile1.close();
  }
     else
  {
      cout << "ERROR: Cannot open file.\n";
  }
      system("Pause");
     return 0;
    } 
4

2 に答える 2

0

あなたの getline はわざわざ改行を探すのではなく、$ だけを探していると思います。読み取り元のファイルを投稿していませんが、ファイル名の末尾に $ があることを確認してください。そうしないと、ファイル全体が取得されます。

于 2013-04-11T16:47:46.993 に答える