再び失礼いします! ファイル出力、入力について、助けていただけると嬉しいです;;

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
MH2

再び失礼いします! ファイル出力、入力について、助けていただけると嬉しいです;;

#1

投稿記事 by MH2 » 9年前

たびたびすみません;;
下の質問で作った数字の表を、ファイルdata.datに保存するプログラムと、そのデータを書き出すプログラムを作らなければいけません;;
以下のデータがヒントのようなのですが、さっぱりわかりません;;
どなた様か、助けてください;;
申し訳ないです;;
よろしくお願いします;;


/* PROGRAM 10.1 12月8日 ファイル出力 Fileout.c */


#include <stdio.h>



main( ){
int i=1, no;
char WORD[10], check[3];
FILE *fp;


/* Open Error Check */
if((fp=fopen("Data.dat","w"))==0){
printf("cannot open file \n");
return 1;
}


while(i!=0){
printf("記憶したい言葉を入力 ");
scanf("%s",WORD);
fprintf(fp,"%d &s",i,WORD);
printf("記憶したい数字を入力 ");
scanf("%d",&no);
fprintf(fp," %d\n",no);
printf("繰り返しますか? YES or NO ");
scanf("%s",check);
i++;
if(check[0]=='N' || check[0]=='n') i=0;
}

/*Close Error Check */
if(fclose(fp)){
printf("cannot close file \n");
return 1;
}
else return 0;






/* PROGRAM 10.2 12月8日 ファイル入力 Filein.c */


#include <stdio.h>


main( ){
int i, num;
char WORD[10];
FILE *fp;


/* Open Error Check */
if((fp=fopen("Data.dat","r"))==0){
printf("cannot open file \n");
return 1;
}

printf("入力されていた言葉、数字は \n");
while(fsacanf(fp,"%d",&i)!=EOF){
fscanf(fp,"%s %d",WORD,&num);
printf(" %s %d\n",WORD,num);
}


fclose(fp);


return 0;
}

non
記事: 1097
登録日時: 9年前

Re: 再び失礼いします! ファイル出力、入力について、助けていただけると嬉しいです;;

#2

投稿記事 by non » 9年前

>たびたびすみません;;
>下の質問で作った数字の表を、

数字の表って?fprintfしたデータのこと?

>ファイルdata.datに保存するプログラムと、そのデータを書き出すプログラムを作らなければいけません;;

データを書き出すってどこに?ファイルに書き出すなら、保存と同じだし。

>以下のデータがヒントのようなのですが、さっぱりわかりません;;

データって?プログラムのことかな?
何がわからないの?質問の意味がわからない?
non

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

Re: 再び失礼いします! ファイル出力、入力について、助けていただけると嬉しいです;;

#3

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

scanf("%s",WORD);
fprintf(fp,"%d &s",i,WORD);
なんで文字列なのに%dで出力しようとするのですか?
上のscanfはちゃんと%sになっているのに...
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

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

Re: 再び失礼いします! ファイル出力、入力について、助けていただけると嬉しいです;;

#4

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

すいません、上のは勘違いです。
こうしたいのですか?

コード:

/* PROGRAM 10.1 12月8日 ファイル出力 Fileout.c */


#include <stdio.h>



main( ){
	int i=1, no;
	char WORD[10], check[3];
	FILE *fp;
	
	
	/* Open Error Check */
	if((fp=fopen("Data.dat","w"))==0){
		printf("cannot open file \n");
		return 1;
	}
	
	
	while(i!=0){
		printf("記憶したい言葉を入力 ");
		scanf("%s",WORD);
		fprintf(fp,"%d %s",i,WORD);
		printf("記憶したい数字を入力 ");
		scanf("%d",&no);
		fprintf(fp," %d\n",no);
		printf("繰り返しますか? YES or NO ");
		scanf("%s",check);
		i++;
		if(check[0]=='N' || check[0]=='n') i=0;
	}
	
	/*Close Error Check */
	if(fclose(fp)){
		printf("cannot close file \n");
		return 1;
	}
	else return 0;
}

コード:

/* PROGRAM 10.2 12月8日 ファイル入力 Filein.c */


#include <stdio.h>


main( ){
	int i, num;
	char WORD[10];
	FILE *fp;
	
	
	/* Open Error Check */
	if((fp=fopen("Data.dat","r"))==0){
		printf("cannot open file \n");
		return 1;
	}
	
	printf("入力されていた言葉、数字は \n");
	while(fscanf(fp,"%d",&i)!=EOF){
		fscanf(fp,"%s %d",WORD,&num);
		printf(" %s %d\n",WORD,num);
	}
	
	
	fclose(fp);
	
	
	return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

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