テキストファイルから入力するにはどうすればよいですか。つまり、次の形式で実行する場合です。
./a.out input.txt
./a.out <input.txtを使用すると、stdinはファイルから入力データを取得します。たとえばscanf()
、input.txtから入力データを取得します。
コマンドラインからの実行を目的としたCプログラムは、通常、関数内で少なくとも2つのパラメーターを取りますmain()
。引数の数と引数を含む配列です。
int main(int argc, char *argv[])
一般的に最初に行うことの1つは、引数を解釈することです。提供した例では、プログラム自体の名前とファイル名「input.txt」の2つがあります。その時点で、「input.txt」を開いて、読み取り、書き込みなどを開始できます。
C プログラムでは"input.txt"
、文字列として受け取り、ファイルを開きます。
例えば:
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp = fopen(argv[1], "r");
/* Do stuff with file */
fclose(fp);
return 0;
}
また、引数が存在するかどうか、およびファイルが適切に開かれたかどうかを確認するためのチェックを追加する必要があります。この例は基本概念にすぎません。