- 締切済み
C言語の課題なのですが、助けてください
C言語のプログラミングの課題で、「以下のプログラムをキーワードを引数として入力できるように変更する(argvを利用する)」という問題なのですが、プログラミングが苦手な私にはさっぱりわからず、大変困っています。設問のプログラミングがわかる方がいらっしゃいましたら、教えていただけると大変助かります。よろしくお願いします。 #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX_LEN 256 int main(int argc, char *argv[]) { FILE *rfp; FILE *wfp; int i, score; double evalue; char id[MAX_LEN], name[MAX_LEN], fname[MAX_LEN]; char keyword[] = "glu"; for(i = 0; i < 100; i++){ sprintf(fname,"files/%d.txt",i); if((rfp = fopen(fname, "r")) == NULL) { printf("入力ファイルが存在しません。\n"); return (EXIT_FAILURE); } while (fscanf(rfp,"%s\t%s\t%d\t%f", id, name, &score, &evalue) != EOF){ if (strstr(name,keyword) != NULL){ printf("%s\n",id); } } fclose(rfp); } return (EXIT_SUCCESS); }
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Trick--o--
- ベストアンサー率20% (413/2034)
argvとは何か、argcとは何か、を教科書や参考書等から調べてください。 > 1.大まかにはわかるのですが、教科書を写しただけなのでよくはわかりません。 プログラムは「言語」です。 ただ眺めるのではなく、日本語に「翻訳」して「読んで」みてください。
- titokani
- ベストアンサー率19% (341/1726)
>char keyword[] = "glu";を消して、keywordの箇所をarvgに変えてやれば、コマンドライン引数に対応すると思うので、やってみたところ一応実行できましたが、まだarvc未使用の警告が消えない状態です。 それだけだと、引数なしで実行した場合に例外が発生すると思います。 argcを使うと、引数があるかどうかをチェックできます。 警告も消えて一石二鳥です。 ちなみに、keywordと置き換えたのはargv[1]ですよね。
- titokani
- ベストアンサー率19% (341/1726)
本当にさっぱりわからないんだったら、単位をあきらめたほうがいいとおもうけど。 少しでもわかるなら、望みはあるので、どの程度までわかるのかを書くべき。
お礼
アドバイスありがとうございます。 この単位諦めると、大卒を諦めることと同義なので、がんばろうと思います。
- Interest
- ベストアンサー率31% (207/659)
学校の課題ならば、安易にここに質問することはあなたの成長を阻害する。 まずは自分の頭で考えて、「こう思うのだけれど自信がない/うまくいかない」という状況になってから質問しましょう。
お礼
アドバイスありがとうございます。 コマンドライン引数(?)というものの使い方がよくわかっていなかったみたいです。
- Trick--o--
- ベストアンサー率20% (413/2034)
1.このプログラムがどういう動きをするかはわかりますか? 2.コマンドライン引数(argv,argc)の使い方はわかりますか?
補足
1.大まかにはわかるのですが、教科書を写しただけなのでよくはわかりません。 2.あまりわかっていません。 char keyword[] = "glu";を消して、keywordの箇所をarvgに変えてやれば、コマンドライン引数に対応すると思うので、やってみたところ一応実行できましたが、まだarvc未使用の警告が消えない状態です。
お礼
回答ありがとうございます。 おっしゃるとおりkeywordと置き換えたのはargv[1]です。 argcはどこでどのように使えばいいのでしょうか?