C言語のファイル操作

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
milk
記事: 9
登録日時: 8年前

C言語のファイル操作

#1

投稿記事 by milk » 8年前

ほかの課題と並行していて申し訳ないのですが、こちらもご教授いただければ幸いです。

・課題
csv形式のファイルで、10行、3列のランダム2桁以下の数値を格納するファイルを作成する。次にこのファイルを読み込み、列ごとに1つずつのファイル
に格納分割するプログラムを以下の条件に従って作成せよ。
・はじめ作成する10行3列のファイルに格納するとき以外はファイルへの読み込みはfgetc,書き込みはfputcで行うこと。
・データを格納するための配列を用いないこと。

この課題の10行、3列のランダム2桁以下の数値を格納するファイルの作成が出来ないため困っています。
手つかずでプログラムもなく申し訳ありません・・
よろしくお願いいたします。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C言語のファイル操作

#2

投稿記事 by みけCAT » 8年前

milk さんが書きました: この課題の10行、3列のランダム2桁以下の数値を格納するファイルの作成が出来ないため困っています。
手つかずでプログラムもなく申し訳ありません・・
なぜできないのですか?
書くプログラムがわからないのですか?
それとも、時間または開発環境などがないのでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

milk
記事: 9
登録日時: 8年前

Re: C言語のファイル操作

#3

投稿記事 by milk » 8年前

言葉が足りず申し訳ありません・・
10行3列に数値を格納していく部分のプログラムの書き方が全く分からないです。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C言語のファイル操作

#4

投稿記事 by みけCAT » 8年前

とりあえずファイルを用意しました。
残りの部分の開発はできますか?

参考:生成プログラム

コード:

10.times.each do
  puts 3.times.map { rand(100) }.join ','
end
添付ファイル
input1.csv
入力データ
(97 バイト) ダウンロード数: 111 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

milk
記事: 9
登録日時: 8年前

Re: C言語のファイル操作

#5

投稿記事 by milk » 8年前

度々申し訳ありません。
ファイル作成をC言語のプログラム上で行うにはどのようなプログラムを書けば良いのでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C言語のファイル操作

#6

投稿記事 by みけCAT » 8年前

milk さんが書きました:度々申し訳ありません。
ファイル作成をC言語のプログラム上で行うにはどのようなプログラムを書けば良いのでしょうか。
ファイル作成を行うプログラムを書けばいいです。
まずはどのような手順でファイル作成を行うのか、日本語で説明できますか?
(あなたがテキストエディタでファイルを作成するとしたら、どのような手順で作業しますか?)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

milk
記事: 9
登録日時: 8年前

Re: C言語のファイル操作

#7

投稿記事 by milk » 8年前

日本語でというと新たなファイルを開くということで良いのでしょうか・・。
以下の様にプログラムを作成してみました。
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桁以下の数値を格納

	}
}


アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C言語のファイル操作

#8

投稿記事 by みけCAT » 8年前

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
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C言語のファイル操作

#9

投稿記事 by みけCAT » 8年前

そもそも、とりあえず(表計算ソフトなど)何を使ってもいいので、
「csv形式のファイルで、10行、3列のランダム2桁以下の数値を格納するファイル」を手動で作ることはできますか?
やってみてください。
とりあえずはランダムじゃなく、1, 2, 3, ... のように適当に順番に格納するのでもかまいません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

milk
記事: 9
登録日時: 8年前

Re: C言語のファイル操作

#10

投稿記事 by milk » 8年前

うまく伝えることが出来ていないようで申し訳ありません。
ファイルの作成方法というより、添付させていただいた画像の様にファイルに数値の格納をしていくプログラムを作成したかったのですがどうしてもうまくいかず、今回は質問をさせていただいていました・・・。
添付ファイル
file.jpg
考えている手順

milk
記事: 9
登録日時: 8年前

Re: C言語のファイル操作

#11

投稿記事 by milk » 8年前

すみませんchは整数型でした。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C言語のファイル操作

#12

投稿記事 by みけCAT » 8年前

まずは、3列じゃなくて1列の場合のプログラムはできますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る