
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
C言語について。
C言語・C++・C#
-
C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、
C言語・C++・C#
-
いまc言語の標準ライブラリ文字列を勉強しているのですがいまいちわかりません。 strcmpとmemc
C言語・C++・C#
-
-
4
c言語の問題です
C言語・C++・C#
-
5
C言語について。
C言語・C++・C#
-
6
int16_t の _t は何?
C言語・C++・C#
-
7
プログラミング 素数か素数ではないか判断するプログラミングで、写真のようなプログラミングを打ったとき
C言語・C++・C#
-
8
C言語でファクト関数を使わずに階乗を計算する方法はありますか?できれば教えてください
C言語・C++・C#
-
9
キャスト演算について。
C言語・C++・C#
-
10
Cのコンパイルでコメントアウトをそのままオブジェクトに保持したい
C言語・C++・C#
-
11
プログラミング 2つの整数を読み込んで、等しければ 「二つの値は同じです」と表示し、そうでなければ,
C言語・C++・C#
-
12
Javaって使いますか、もう古いですか?C++とどっちがいいですか?分析でC++使う授業ありましたけ
C言語・C++・C#
-
13
関数ポインタの高速化のメリット
C言語・C++・C#
-
14
アセンブラ指令
C言語・C++・C#
-
15
プログラムについて。
C言語・C++・C#
-
16
プログラムについて。
C言語・C++・C#
-
17
C言語について。
C言語・C++・C#
-
18
c言語
C言語・C++・C#
-
19
いまc言語を独学で勉強しているのですがいまいちわかりません。 https://monozukuri-
C言語・C++・C#
-
20
必ずyou bet と表示されます
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
C言語の入力した文字を反転させ...
-
C言語のfor文です。 繰り返しの...
-
配列をnビットシフトする
-
charでの計算?
-
文字列ポインタを結合
-
文字列から空白を取り除きたい...
-
TCHAR文字列?の特定部分の数字...
-
double型の値をchar配列に変換...
-
文字列中からある文字列とある...
-
c++ 文字列を入力して、一文字...
-
char型からのバイト数取得
-
atoi( ) の反対をやりたい
-
switch文で文字を比較すること...
-
C言語エラーについて
-
'const char *' 型は 'char *' ...
-
ネットワークにつながっている...
-
間接参照のレベルが異なっています
-
テキストデータをそのままバイ...
-
干支のプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#include <stdio.h> #include <...
-
#include <stdio.h> #include <...
-
【至急】C言語の問題です、どな...
-
C言語の入力した文字を反転させ...
-
charからLPTSTRへの変換方法
-
charでの計算?
-
配列をnビットシフトする
-
文字列から空白を取り除きたい...
-
C言語のfor文です。 繰り返しの...
-
fgetsなどのときのstdinのバッ...
-
switch文で文字を比較すること...
-
文字列ポインタを結合
-
CStringをwchar_tに変換したい
-
str系関数を使わずに二つの文字...
-
C言語プログラミングについて(...
-
'const char *' 型は 'char *' ...
-
c++ 文字列を入力して、一文字...
-
3桁区切(コンマ)記号をつけ...
-
テキストデータをそのままバイ...
-
干支のプログラム
おすすめ情報