ページ 11

ファイルの入出力に関する質問

Posted: 2011年10月13日(木) 13:36
by lookie
はじめまして、c言語初心者で分からない部分があり質問させていただきます。
c言語でのファイルの入出力の練習のために、
下のような2048行X1列の数値が書かれているcsvファイルを読み込み、
0.08
2.7809
33.07



8.30
それを新たなcsvファイルにそのまま書き出すプログラムを作ってみました。
出力されたcsvファイルには同じ数字が書かれているはずですが、
なぜか全て0になってしまいます。
0.000000
0.000000



0.000000
上手く数値を読み込むにはどうしたらいいでしょうか?教えてください。

コード:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define A 2048
	double x[A];
	char st1[100];
	char st2[]=".csv";
	char str[100];
	char str2[100];
	FILE *IN1,*OUT;

int main(){
	printf("拡張子の前までのファイル名を入力してください\n");
	printf("例(neko.csv→neko)\n");
	gets(st1);
	printf("読みこんだんよ\n");

	sprintf_s(str,"%s%s",st1,st2);
	IN1=fopen(str,"r");

	for(unsigned int i=0;i<A;i++){
		fscanf(IN1,"%f",&x[i]);
	}

	sprintf_s(str,"noudo_%s%s",st1,st2);
	OUT=fopen(str,"w");

	for(unsigned int i=0;i<A;i++){
		fprintf(OUT,"%f\n",x[i]);
	}

	fclose(IN1);
	fclose(OUT);

	printf("終了");
	getchar();
	return 0;
}

Re: ファイルの入出力に関する質問

Posted: 2011年10月13日(木) 14:34
by へろりくしょん
22行目。 fscanf() 関数における double 型の書式指定子は %lf です。

Re: ファイルの入出力に関する質問

Posted: 2011年10月14日(金) 08:13
by lookie
ありがとうございます、解決しました。