はじめての C

関数 main() には 特別な引数が 2つある。
1. argc : プログラムのパラメータ(引数)の数に 1 を加えた数字。
2. argv[] : パラメータ(引数)の文字列へのポインタ。

上の 2つの引数を使って、それ自体のパラメータの数を表示するプログラムを作成せよ。

  1. /* hikisu_1 */
  2. #include
  3. int main(int argc, char *argv[]) /* ←このように表す */
  4. {
  5. printf("このプログラムの引数は %d 個ですネ。\n", argc - 1);
  6. return 0;
  7. }

実行すると、引数のない場合は 0、それ以外には 引数の数にあった数字を出力する。
$./hikisu_1 abc def として確認。

パラメータ(引数)に文字列を入れると、その文字列を順次 標準出力するプログラムを作成せよ。

  1. /* hikisu_2 */
  2. #include
  3. int main(int argc, char *argv[])
  4. {
  5. int i;
  6. for (i = 1; i < argc; i++) {
  7. puts(argv[i]);
  8. /* 関数 puts() は文字列を一行ずつ標準出力する */
  9. /* この場合の引数は 配列 */
  10. }
  11. return 0;
  12. }

hikisu_2 を改良して、パラメータ(引数)がない場合には 警告して終了するプログラムを作成せよ。

  1. /* hikisu_3 */
  2. #include
  3. int main(int argc, char *argv[])
  4. {
  5. int i;
  6. if (argc < 2) { /* argc が 1、すなわち引数がない */
  7. fprintf(stderr, "パラメータ(引数)を指定してください。\n");
  8. /* 通常この場合には printf() のかわりに fprintf() を使用する */
  9. /* 第1引数には stderr = エラー出力を指定 */
  10. } else {
  11. for (i = 1; i < argc; i++) {
  12. puts(argv[i]);
  13. }
  14. }
  15. return 0;
  16. }