はじめての C
関数 main() には 特別な引数が 2つある。
1. argc : プログラムのパラメータ(引数)の数に 1 を加えた数字。
2. argv[] : パラメータ(引数)の文字列へのポインタ。
上の 2つの引数を使って、それ自体のパラメータの数を表示するプログラムを作成せよ。
- /* hikisu_1 */
- #include
- int main(int argc, char *argv[]) /* ←このように表す */
- {
- printf("このプログラムの引数は %d 個ですネ。\n", argc - 1);
- return 0;
- }
実行すると、引数のない場合は 0、それ以外には 引数の数にあった数字を出力する。
$./hikisu_1 abc def として確認。
パラメータ(引数)に文字列を入れると、その文字列を順次 標準出力するプログラムを作成せよ。
- /* hikisu_2 */
- #include
- int main(int argc, char *argv[])
- {
- int i;
- for (i = 1; i < argc; i++) {
- puts(argv[i]);
- /* 関数 puts() は文字列を一行ずつ標準出力する */
- /* この場合の引数は 配列 */
- }
- return 0;
- }
hikisu_2 を改良して、パラメータ(引数)がない場合には 警告して終了するプログラムを作成せよ。
- /* hikisu_3 */
- #include
- int main(int argc, char *argv[])
- {
- int i;
- if (argc < 2) { /* argc が 1、すなわち引数がない */
- fprintf(stderr, "パラメータ(引数)を指定してください。\n");
- /* 通常この場合には printf() のかわりに fprintf() を使用する */
- /* 第1引数には stderr = エラー出力を指定 */
- } else {
- for (i = 1; i < argc; i++) {
- puts(argv[i]);
- }
- }
- return 0;
- }