コマンドラインからファイルを指定

コマンドラインから指定された TEXT FILE を入力して、コンソールに表示します。

前田稔の超初心者のプログラム入門

  1. コマンドラインから指定された複数のテキスト形式のファイルをコンソールに表示します。
    #include <fstream> でヘッダーファイルを取り込みます。
    例えば次のようにコマンドラインから起動します。
    file1.exe はこのプログラムの実行形式のファイルで、他の三個はC言語のソースファイルです。
    file1.exe stream1.cpp stream2.cpp file1.cpp
    パラメータが省略されたときは、cin から入力して cout に出力します。
    copyfile() は入力ファイルから読んで出力ファイルに書き出す関数です。
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        if (argc<2)
            copyfile(cin, cout);        //標準入力→標準出力
        else
        {   while(--argc>0)             //コマンドラインで指定した数だけループ
            {   ifstream i_f;           //入力ファイルの宣言
                i_f.open(*++argv);      //入力ファイルのオープン
                if (!i_f)
                {   cerr << "ファイル" << *argv << "オープンエラー\n";
                    return(1);
                }
                else
                {   copyfile(i_f,cout); //入力→標準出力
                    i_f.close();        //入力ファイルのクローズ
                }
            }
        }
        return(0);
    }
    
  2. copyfile() 関数のソースコード
    istream& src は入力ファイルのオブジェクトです。
    ostream& dst は出力ファイルのオブジェクトです。
    src.get(ch) で入力ファイルから ch に一文字入力します。
    dst.put(ch) で ch に格納されている文字を出力ファイルに書き出します。
    //File Copy routine
    void    copyfile(istream& src, ostream& dst)
    {   char    ch;
        while(src.get(ch))
            dst.put(ch);                //一文字ずつコピー
    }
    

超初心者のプログラム入門(C/C++)