アルゴリズムとデータ構造 補足資料
6-3
「サンプルプログラム
cat3.c
」横浜国立大学 理工学部 数物・電子情報系学科 富井尚志
main 関数の引数 argc, argv
main(int argc, char *argv[]) {
…
}
main 関数の引数 argc, argv
main(int argc, char *argv[]) {
… }
コマンド名:
echo
第1
引数:hello,
第2
引数:world
の場合:% echo hello, world [enter]
main 関数の引数 argc, argv
main(int argc, char *argv[]) {
… }
コマンド名:
echo
第1
引数:hello,
第2
引数:world
の場合:% echo hello, world [enter]
e c h o \0
h e l l o , \0
w o r l d \0
argv[0 ]
argv[1 ]
argv[2 ]
argv[3 ]
0
argv
main 関数の引数 argc, argv
main(int argc, char *argv[]) {
… }
コマンド名:
echo
第1
引数:hello,
第2
引数:world
の場合:% echo hello, world [enter]
e c h o \0
h e l l o , \0
w o r l d \0
argv[0 ]
argv[1 ]
argv[2 ]
argv[3 ]
0 argv
argc: argument count:
引数の数argv: argument vector:
引数の文字列main 関数の引数 argc, argv
main(int argc, char *argv[]) {
… }
コマンド名:
echo
第1
引数:hello,
第2
引数:world
の場合:% echo hello, world [enter]
argc: argument count:
引数の数argv: argument vector:
引数の文字列argv[0]=“echo”
コマンド名の文字列argv[1]=“hello,”
第1
引数の文字列argv[2]=“world”
第2
引数の文字列/****************************************************************
アルゴリズムとデータ構造 サンプルプログラム cat3.c
<<ファイルの例: 入力ファイルを出力ファイルにコピー>>
copyright (c) 1995,96,97 T.Mori <[email protected]>
****************************************************************/
#include <stdio.h>
main(int argc, char *argv[]) {
int c;
FILE *infp,*outfp;
if (argc != 3) { /* 引数の数が合わない時は,使い方を表示 */
fprintf(stderr,"Usage: %s inputfile outputfile\n", argv[0]);
exit(1);
} else {
if ((infp = fopen(argv[1],"r")) == NULL) {
/* 入力ファイルが開けない場合はエラー */
fprintf(stderr,"%s: %s: No such file or directory\n", argv[0],argv[1]);
exit(1);
}
else if ((outfp = fopen(argv[2],"w")) == NULL) { /* 出力ファイルが開けない場合はエラー */
fprintf(stderr,"%s: Cannot open %s\n", argv[0],argv[2]);
exit(1);
} else {
while ((c = getc(infp)) != EOF)
/* EOFが現れるまで入力ファイルから文字を読み */
putc(c,outfp); /* 出力ファイルに書き込む */
fclose(infp); /* 各ファイルを閉じる */
fclose(outfp);
exit(0);
} }
exit(0);
}
慣用表現なので、
覚えてしまおう!