アプリ版:「スタンプのみでお礼する」機能のリリースについて

#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
char gyou[1024];
int gyousuu = 0;
if ( argc < 2 ){
printf("file mei ga nai\n");
return -1;
}
fp = fopen(argv[1], "r");
if ( fp == NULL ){
printf("fopen dekinai\n");
return -2;
}
while(fgets(gyou, sizeof(gyou), fp) != NULL){
gyousuu++;
}
fclose(fp);
printf("gyousuu=%d\n", gyousuu);
return 0;
}
 
 以上のプログラムはご覧のとおり、「ファイルの行数を計算」のプログラムです。

さて以上の
 if ( argc < 2 ){
printf("file mei ga nai\n");
return -1;
}
は「コマンドライン引数チェック」を行っています。・・・
 if ( argc < 2 ){の「argcは2以上である必要がある」と参考書に書いてあります。
 
以上ですが意味が日光手前ですが、プログラムの行数をカウントするうえで、
 「コマンドライン引数チェック」とはどんな作業を行っているとこなのでしょうか!?
 よろしくお願いします。
 

A 回答 (3件)

例えばプログラム名をhogeとした場合



hoge と起動した場合
argc = 1
argv[0] = "hoge"

hoge aaa bbb の様に起動した場合
argc = 3
argv[0] = "hoge"
argv[1] = "aaa"
argv[2] = "bbb"
↑の値が各変数にセットされます。
以後の処理で、それらの値を使用するのが
必須の場合、引数をつけずにプログラムを
起動したか、値が適切な物であるかどうか
を「コマンドライン引数チェック」で確認
してチェック結果に応じた処理をします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
 まだ理解は無理みたいですので
再度参考書の数十ページに戻り見直しておりす。

お礼日時:2015/01/26 20:04

コマンドラインから実行した時に渡したパラメータの数をチェックしています。


http://www9.plala.or.jp/sgwr-t/c/sec11-4.html
    • good
    • 0

これの意味がわからないとすると、Cを全く知らないレベルでしょうか?


「コマンドライン」とか「引数」の言葉の意味はわかるのでしょうか?一応、わかると仮定して説明すると、処理内容は、

もし「コマンドラインの引数の数がコマンド名も入れて2未満なら」、言い換えると引数が無ければ、
file mei ga nai と表示して、プログラムをリターンコード -1 で終了する

です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!