質問

Cプログラム「Animal.C」を作りたいです。
そしてシェルで、
入力するとき

>animal -cat

結果は「Meow」です

>animal -dog

結果は「弓」です。
それは唯一の方法ですか?

void main(int argc, char **argv){
if(argv[1][0] == '-' && argv[1][1] == 'c' && argv[1][2] == 'a' && argv[1][3] == 't')
    printf("meow");
if(argv[1][0] == '-' && argv[1][1] == 'd' && argv[1][2] == 'o' && argv[1][3] == 'g')
    printf("bow");
}

それ以外の場合、「/動物」に位置する「猫」をファイルしたいとき、
フォルダー「動物」がすでにルートディレクトリにあると仮定しています。

     animal -cat  

その結果、「/動物」で「猫」をファイルにします
ファイル「猫」の絶対的なパスは「/動物/猫」です

実行する方法 ?
オプション値を受信する別の方法はありますか?

役に立ちましたか?

解決

getopt コマンドラインオプションを解析する人気があり、ほぼ標準的な方法です。コマンドラインの引数を手で解析するのではなく、それ(または同様のもの)を使用する必要があります。それは非常にエラーが発生しやすいです。

他のヒント

ファイル名を渡す場合、その前に「 - 」を入れてはいけません。実際、「 - 」は「単一文字オプション* s* follow」を伝えるモディファイアです。「 - 」は、単一の文字がフォローするよりも長い名前を持つ「オプション」を伝えるモディファイアです。

痛みを緩和する最初のステップは、合格した引数の各文字をテストする代わりにSTRNCMPを使用することです。

how to do ?

あなたの最後の質問に答えるには、次のようなものを使用する必要があります mkdir FOPENと組み合わせてファイルを作成します。

is there another way to receive option value?入力をリダイレクトして「オプション」値を取得する方法があります。プログラムに2つのfgetsがある2行がある場合:

char name[10];
char date[9];

fgets(name,10,stdin);
fgets(date,9,stdin);

data.txtというファイルにありました

 Bob
 04/27/11

入力をプログラムにリダイレクトすることができます

 myprog < data.txt

そして、それはあなたが自分で値を入力するようなものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top