プロが教えるわが家の防犯対策術!

c言語のソースコードなのですが、コメントアウトではなくてこのコードの説明をしたいんですが上手くまとめられないので教えていただきたいです。

#include <stdio.h>
#include <string.h>

#define NUM 7
#define nfile "a0.txt" //name.txt
#define bfile "a0.bin" //shain.bin
#define outfile "a1.txt" //bunya.txt

char name[NUM][32];
int d[NUM][4];

int read(char *fn, int type) {
FILE *fi;
int i=0;
if(type==0) {
if((fi=fopen(fn, "r"))==NULL)return 1;
while(fscanf(fi, "%s", name[i])==1) {
//printf("%s\n",n[i]);
i++;
if(i>NUM)break;
}
} else {
if((fi=fopen(fn, "rb"))==NULL)return 1;
while(fread(d[i], sizeof(int), 4, fi)==4) {
//printf("%d %d %d %d\n",d[i][0],d[i][1],d[i][2],d[i][3]);
i++;
if(i>NUM)break;
}
}
fclose(fi);
return 0;
}

int write(char key, int n) {
FILE *fo;
char *po[]= {"東京", "埼玉", "神奈川"};
int i;

if((fo=fopen(outfile, "w"))==NULL)return 1;
fputs("社員番号,所属,分野,年齢\n", fo);
puts("社員番号,所属,分野,年齢");
for(i=0; i<n; i++) {
if(d[i][2]==key) {
fprintf(fo, "%d,%s,%c,%d,%s\n",
d[i][0], po[d[i][1]], d[i][2], d[i][3], name[i]);
printf("%d,%s,%c,%d,%s\n",
d[i][0], po[d[i][1]], d[i][2], d[i][3], name[i]);
}
}
return 0;
}

int main(int argc, char *argv[]) {
char ss[]="MSE";

if(argc<2) {
puts("ERROR: command");
return 1;
}
if(strchr(ss, argv[1][0])==NULL) {
puts("ERROR: command");
return 2;

}

if(read(nfile, 0)) {
puts("ERROR: file open or read.");
return 3;
}

if(read(bfile, 1)) {
puts("ERROR: file open or read.");
return 4;
}

if(write(argv[1][0], NUM)) {
puts("ERROR: file write.");
return 5;
}

return 0;
}

問題はこのようになっております。
次のようなデータ構造をもつバイナリファイル『shain.bin』と
氏名リストが記載されたテキストファイル『name.txt』を読み
込み、社員データとして構造体shainに社員番号、所属、分野、
年齢、氏名の要素で情報を格納する。
コマンドライン入力で分野情報(M・S・E)を入力し、
指定された分野の社員情報をテストファイル『bunya.txt』に出
力する。(出力例の表記で出力する)

A 回答 (5件)

    • good
    • 0

全然説明になってないと思います。



> 上手くまとめられないので

変にまとめなくて良いので、そのまま、だらだらと書いてみてはどうでしょうか。
    • good
    • 0

> 問題はこのようになっております。


> ~

説明文はおおむねOK、まとまってるからこのままで良いと思います。

細かい仕様とか分からんし、コードが合ってるかどうかは知らんけど、実行して結果OKなら合ってる事が多い。
    • good
    • 0
この回答へのお礼

これは説明文ではないです。部分部分のコードの内容をおしえていただきたいです。

お礼日時:2023/07/26 15:12

>コメントアウトではなくてこのコードの説明をしたい



どういう意味ですか?
日本語でお願いします。
    • good
    • 3
この回答へのお礼

ごめんなさいコメントアウトならどうしたらいいですか

お礼日時:2023/07/26 13:57

「コメントアウト」とはソースコードの不要部分をコメントにしてコンパイル時に無視されるようにすることです。


したがって「コメントアウトではなくてこのコードの説明をしたい」では日本語として意味がわかりません。

ちなみにソースコードは全て1カラム目から格の意ではなく、it文、for文、while文などでは4文字分とか一定文字数のインデント(字下げ)をして見やすくすると解読も説明も各段にしやすくなります。

参考まで。
    • good
    • 0

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