
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』に出
力する。(出力例の表記で出力する)
No.4ベストアンサー
- 回答日時:
部分部分のコードの内容の説明 / Visual Studio で実行する場合
https://learn.microsoft.com/ja-jp/cpp/preprocess …
https://learn.microsoft.com/ja-jp/cpp/preprocess …
https://learn.microsoft.com/ja-jp/cpp/c-language …
https://learn.microsoft.com/ja-jp/cpp/c-language …
https://learn.microsoft.com/ja-jp/cpp/c-language …
https://learn.microsoft.com/ja-jp/cpp/cpp/functi …
https://learn.microsoft.com/ja-jp/cpp/cpp/return …
https://learn.microsoft.com/ja-jp/cpp/cpp/if-els …
https://learn.microsoft.com/ja-jp/cpp/cpp/while- …
https://learn.microsoft.com/ja-jp/cpp/cpp/break- …
https://learn.microsoft.com/ja-jp/cpp/cpp/for-st …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
https://learn.microsoft.com/ja-jp/cpp/c-runtime- …
コード全体の説明
問題文を実装しようとしているが、問題文にない件数制限があったり、バグでプログラムが暴走する恐れがあったりと、品質が悪いので改善が必要。
No.3
- 回答日時:
> 問題はこのようになっております。
> ~
説明文はおおむねOK、まとまってるからこのままで良いと思います。
細かい仕様とか分からんし、コードが合ってるかどうかは知らんけど、実行して結果OKなら合ってる事が多い。
No.1
- 回答日時:
「コメントアウト」とはソースコードの不要部分をコメントにしてコンパイル時に無視されるようにすることです。
したがって「コメントアウトではなくてこのコードの説明をしたい」では日本語として意味がわかりません。
ちなみにソースコードは全て1カラム目から格の意ではなく、it文、for文、while文などでは4文字分とか一定文字数のインデント(字下げ)をして見やすくすると解読も説明も各段にしやすくなります。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
間接操作のレベルとは
-
バイナリファイルをコピーする...
-
テキストデータをそのままバイ...
-
char型からのバイト数取得
-
文字列中からある文字列とある...
-
エンディアン:2バイトのデー...
-
atoi( ) の反対をやりたい
-
c++ 文字列を入力して、一文字...
-
iconv_open失敗
-
文字列から空白を取り除きたい...
-
fgetsなどのときのstdinのバッ...
-
入力された文字列から整数だけ...
-
引数の渡し方と受け方(argv)
-
配列をnビットシフトする
-
C言語のポインターで詰まっている
-
C言語のfor文です。 繰り返しの...
-
'const char *' 型は 'char *' ...
-
ftoa の作り方
-
double型の値をchar配列に変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列から空白を取り除きたい...
-
charからLPTSTRへの変換方法
-
CStringをwchar_tに変換したい
-
fgetsなどのときのstdinのバッ...
-
charでの計算?
-
C言語のfor文です。 繰り返しの...
-
テキストデータをそのままバイ...
-
絶対パスからのファイル名の切...
-
double型の値をchar配列に変換...
-
型変換
-
間接操作のレベルとは
-
'const char *' 型は 'char *' ...
-
ネットワークにつながっている...
-
YUV⇔RGB変換がうまくいきません。
-
間接参照のレベルが異なっています
-
str系関数を使わずに二つの文字...
-
strncpyと_tcsncpy_sのヌルの扱...
-
c++ 文字列を入力して、一文字...
-
C言語です
-
iconv_open失敗
おすすめ情報