C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ファイル 構造体 配列


(過去ログ 131 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■77607 / inTopicNo.1)  ファイル 構造体 配列
  
□投稿者/ しむ (1回)-(2015/11/07(Sat) 22:49:03)

分類:[.NET 全般] 

__**###イタリックテキスト**__以下の課題がわからなくて困っています。
ファイルを読み込んで、条件に合うようにしたいです。
また、結果は新しいファイルに出力するみたいです。

-条件-
トランザクションのファイルの番号のみ→消す
masterにない番号は、トランザクション(文字列)を丸ごと追加



構造体を使う
1個の関数は、60行まで
scanf禁止(fgets等)


●master.dat 
00001,akai fumihito,akai@xxxxx.xx.jp
00002,ando yuki,ando@xxxxx.xx.jp
00003,ishikura toshiyuki,ishikura@xxxxx.xx.jp
00004,inoue miyuki,inoue@xxxxx.xx.jp
00005,iwata tomohiro,iwata@xxxxx.xx.jp
00006,ueda hiroshi,ueda@xxxxx.xx.jp
00007,osada kinya,osada@xxxxx.xx.jp
00008,odagiri daisuke,odagiri@xxxxx.xx.jp
00009,katsumata sakura,katsumata@xxxxx.xx.jp
00010,kumagai yuki,kumagai@xxxxx.xx.jp
00011,kobayashi yuki,yukikoba@xxxxx.xx.jp
00012,kobayashi yuta,yutakoba@xxxxx.xx.jp
00013,saito naoya,saito@xxxxx.xx.jp
00014,saito noritaka,sato@xxxxx.xx.jp
00015,shimura chie,simura@xxxxx.xx.jp
00016,sugihara takashi,sugihara@xxxxx.xx.jp
00017,chino kota,chino@xxxxx.xx.jp
00018,nakajima ayumu,nakajima@xxxxx.xx.jp
00019,natori hisao,natori@xxxxx.xx.jp
00020,nozawa ruriko,nozawa@xxxxx.xx.jp
00022,hihara yoshiyuki,hihara@xxx.xx.jp
00023,fujie mayumi,fujie@xxxxx.xx.jp
00024,fujimaki hiroyuki,fujimaki@xxxxx.xx.jp
00025,miura tsunayuki,miura@xxxxx.xx.jp
00026,mochiduki hideaki,mochiduki@xxxxx.xx.jp
00027,yazawa akihiko,yazawa@xxxxx.xx.jp
00028,yokomori chigusa,yokomori@xxxxx.xx.jp
00029,watanabe akira,awatanabe@xxxxx.xx.jp
00030,watanabe kentaro,kwatanabe@xxxxx.xx.jp

●trasaction.dat
00003
00004,inoue sachi
00007,,nagata@xxxxx.xx.jp
00018,nakadori ayumu,nakadori@xxxxx.xx.jp
00021,hatayama yurika,hatakeyama@xxxxx.xx.jp
00022,hinohara yoshiyuki,hinohara@xxx.xx.jp
00026
00029
00030,watanabe kenjiro
00031,yoshimura yoshikazu,yoshimura@xxxxx.xx.jp


この2つを読み込む

プログラム的には、
1.ファイル読み込み
2.ファイルを配列に入れる
3.配列で比較
-条件-
トランザクションのファイルの番号のみ→消す
masterにない番号は、トランザクション(文字列)を丸ごと追加

4.新しいファイルに結果を入れる
5.ファイルを閉じる

構造体では、
変更、追加、消去

になると思います。提出期限がまじかで焦っています。

#include<stdio.h>
#include<string.h>
#define BANGO 50
#define NAME 50
#define ADORESU 50
#define NUM 100

struct File
{
	int bango[BANGO];
	char name[NAME];
	char adoresu[ADORESU];
};

int main(void)
{

	char str[NUM];
	int i;
	FILE *fp,*fp2,*fp3,*p1,*p2;
	
	fp = fopen("master.dat","r");
	
	if(fp == NULL)
	{
		return 1;
	}
	printf("ファイルをオープンしました\n");
	
	fp2 = fopen("transaction.dat","r");
	
	if(fp2 == NULL)
	{
		return 2;
	}
	printf("ファイルをオープンしました");
	
	fp3 = fopen("result.dat","w");
	
	if(fp3 == NULL)
	{
		return 3;
	}
	printf("ファイルをオープンしました");
	
	//while (fgets(str, NUM, fp1) != NULL && fgets(str, NUM, fp2) != NULL) 
	{
		
	/*while((fgets(str,NUM,fp))!=NULL)
	{
		printf("%s",str);
		fputs(str,fp3); */
	}
    }
	fclose(fp);
	fclose(fp2);
	fclose(fp3);
	
	return 0;
}	

引用返信 編集キー/
■77608 / inTopicNo.2)  Re[1]: ファイル 構造体 配列
□投稿者/ くなーら (11回)-(2015/11/07(Sat) 23:49:14)
master.datというファイルで、メールアドレスとその使用者を管理している。
そのデータベースを更新するのに使うファイル、元ネタがtrasaction.datだと。

1.trasaction.datにおいて、ただ番号だけ書いてあるのは
master.datでその番号はもう管理しないので削除しろ、という取り決めになっている。
2.trasaction.datにおいて、master.datに記載の無い番号は、
新しく管理したいメールアドレスとその使用者、という取り決めになっている。

サークルの連絡網を管理するようなプログラムですね。
仕様というか、やりたいことはなんとなくわかりました。

質問です。
1.何がわからないのか。(何がうまくいきませんか?)
2.「また、結果は新しいファイルに出力するみたいです。」の、『みたい』とはどういう意味か。(クリア条件が何故曖昧?)

/*
 課題ではなく、パズルだと思って取り組むと楽しいですよ!
 解決手段の提供ではなく、「貴方が解くことのお手伝い」を提供したいと思います。
*/
引用返信 編集キー/
■77610 / inTopicNo.3)  Re[2]: ファイル 構造体 配列
□投稿者/ しむ (2回)-(2015/11/08(Sun) 00:17:13)
ファイルの処理がいまいちわからなく、ファイルを配列に入れるやり方など。
根本的に、分かりません。っていいほど。

resultに最終的には書き込みます。
引用返信 編集キー/
■77611 / inTopicNo.4)  Re[3]: ファイル 構造体 配列
□投稿者/ くなーら (12回)-(2015/11/08(Sun) 00:37:47)
2015/11/08(Sun) 00:39:11 編集(投稿者)

No77610 (しむ さん) に返信
> ファイルの処理がいまいちわからなく、ファイルを配列に入れるやり方など。
> 根本的に、分かりません。っていいほど。
>
> resultに最終的には書き込みます。

わからないことが具体的になりましたね?
それでは「ファイル」「配列」等のキーワードを使って検索してみましょう。

/*
googleで「C言語 ファイル 配列」と入力するだけで、予測に色々と出てきますね。
*/

引用返信 編集キー/
■77612 / inTopicNo.5)  Re[4]: ファイル 構造体 配列
□投稿者/ 通りすがり (27回)-(2015/11/08(Sun) 08:53:58)
情報共有

構造体による処理
http://dixq.net/forum/viewtopic.php?f=3&t=17241&sid=3e20ccb610f099cc0ceaab8276c69880
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -