2

2 つのファイルを取り込む簡単なプログラムを作成しています。ターミナルのコマンド ラインは次のようになります。

./fileIO foo.code foo.encode

実行すると、2番目のファイルが読み込まれません。

./fileIO foo.code foo.code

できます。2つ目が開かない理由がわかりません。何か案は?ありがとう!

#include <fstream>
#include <iostream>
#include <queue>
#include <iomanip>
#include <map>
#include <string>
#include <cassert>
using namespace std;

int main( int argc, char *argv[] )
{
  // convert the C-style command line parameter to a C++-style string,
  // so that we can do concatenation on it
  assert( argc == 3 );
  const string code = argv[1];
  const string encode = argv[2];
  string firstTextFile = code;
  string secondTextFile = encode;

  //manipulate the first infile
  ifstream firstFile( firstTextFile.c_str(), ios::in );
  if( !firstFile ) 
  {
    cerr << "Cannot open text file for input" << endl;
    return 1;
  }

  string lineIn;
  string codeSubstring;
  string hexSubstring;
  while( getline( firstFile, lineIn ) ) 
  {
    hexSubstring = lineIn.substr(0, 2);
    codeSubstring = lineIn.substr(4, lineIn.length() );
    cout << hexSubstring << ", " << codeSubstring << endl;
  }

  //manipulate the second infile
  ifstream secondFile( secondTextFile.c_str(), ios::in );
  if( !secondFile ) 
  {
    cerr << "Cannot open text file for input" << endl;
    return 1;
  }

  char characterIn;
  while( secondFile.get( characterIn ) )
  {
    cout << characterIn << endl;
  }


  return 0;
}
4

1 に答える 1