ページ 1 / 1
C言語のファイル操作
Posted: 2017年2月05日(日) 08:53
by milk
ほかの課題と並行していて申し訳ないのですが、こちらもご教授いただければ幸いです。
・課題
csv形式のファイルで、10行、3列のランダム2桁以下の数値を格納するファイルを作成する。次にこのファイルを読み込み、列ごとに1つずつのファイル
に格納分割するプログラムを以下の条件に従って作成せよ。
・はじめ作成する10行3列のファイルに格納するとき以外はファイルへの読み込みはfgetc,書き込みはfputcで行うこと。
・データを格納するための配列を用いないこと。
この課題の10行、3列のランダム2桁以下の数値を格納するファイルの作成が出来ないため困っています。
手つかずでプログラムもなく申し訳ありません・・
よろしくお願いいたします。
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 09:11
by みけCAT
milk さんが書きました:
この課題の10行、3列のランダム2桁以下の数値を格納するファイルの作成が出来ないため困っています。
手つかずでプログラムもなく申し訳ありません・・
なぜできないのですか?
書くプログラムがわからないのですか?
それとも、時間または開発環境などがないのでしょうか?
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 09:24
by milk
言葉が足りず申し訳ありません・・
10行3列に数値を格納していく部分のプログラムの書き方が全く分からないです。
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 09:34
by みけCAT
とりあえずファイルを用意しました。
残りの部分の開発はできますか?
参考:生成プログラム
コード:
10.times.each do
puts 3.times.map { rand(100) }.join ','
end
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 09:46
by milk
度々申し訳ありません。
ファイル作成をC言語のプログラム上で行うにはどのようなプログラムを書けば良いのでしょうか。
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 09:52
by みけCAT
milk さんが書きました:度々申し訳ありません。
ファイル作成をC言語のプログラム上で行うにはどのようなプログラムを書けば良いのでしょうか。
ファイル作成を行うプログラムを書けばいいです。
まずはどのような手順でファイル作成を行うのか、日本語で説明できますか?
(あなたがテキストエディタでファイルを作成するとしたら、どのような手順で作業しますか?)
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 10:23
by milk
日本語でというと新たなファイルを開くということで良いのでしょうか・・。
以下の様にプログラムを作成してみました。
else{ の後のコメント部分をどのように書けば良いか教えていただきたいです。
コード:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main(void)
{
int i, n;
FILE *fp;
int ch;
fp = fopen("number.csv", "w");
if (fp == NULL) {
printf("ファイルを開くことが出来ませんでした.\n");
return;
}
else {
//10行、3列のランダム2桁以下の数値を格納
}
}
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 10:50
by みけCAT
milk さんが書きました:日本語でというと新たなファイルを開くということで良いのでしょうか・・。
以下の様にプログラムを作成してみました。
else{ の後のコメント部分をどのように書けば良いか教えていただきたいです。
コード:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main(void)
{
int i, n;
FILE *fp;
int ch;
fp = fopen("number.csv", "w");
if (fp == NULL) {
printf("ファイルを開くことが出来ませんでした.\n");
return;
}
else {
//10行、3列のランダム2桁以下の数値を格納
}
}
これは
コード:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void store_numbers(FILE* fp);
void main(void)
{
int i, n;
FILE *fp;
int ch;
fp = fopen("number.csv", "w");
if (fp == NULL) {
printf("ファイルを開くことが出来ませんでした.\n");
return;
}
else {
store_numbers(fp);
}
}
というコードに変換できますが、作業の説明が全く無いですね。
あなたがテキストエディタでデータを作成するとしたら、そんなことはせずに小人さんかなんかに外注するのですか?
もう少し考えてみてください。
オフトピック
void main(void)という関数の定義は処理系依存であり、
マイコン向けのプログラムを書く場合やこれを使わないと先生に怒られるなどの特別な理由が無い限り、使わないべきです。
規格にあるのはint main(void)やint main(int argc, char* argv[])です。
void main()をめぐるどうでもいい話 - Qiita
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 10:51
by みけCAT
そもそも、とりあえず(表計算ソフトなど)何を使ってもいいので、
「csv形式のファイルで、10行、3列のランダム2桁以下の数値を格納するファイル」を手動で作ることはできますか?
やってみてください。
とりあえずはランダムじゃなく、1, 2, 3, ... のように適当に順番に格納するのでもかまいません。
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 12:17
by milk
うまく伝えることが出来ていないようで申し訳ありません。
ファイルの作成方法というより、添付させていただいた画像の様にファイルに数値の格納をしていくプログラムを作成したかったのですがどうしてもうまくいかず、今回は質問をさせていただいていました・・・。
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 12:22
by milk
すみませんchは整数型でした。
Re: C言語のファイル操作
Posted: 2017年2月05日(日) 13:22
by みけCAT
まずは、3列じゃなくて1列の場合のプログラムはできますか?