/***
*プログラムの使い方
*readFile()のfp = fopen( "Book1.csv", "r" );
*で読込ファイルを、
*writeFile()のfile = fopen("test.txt","w");
*で書込ファイルを指定しています。
*
*/
#include <stdio.h>
#include <stdlib.h>
//DATA[gyou][retsu]の行数を指定します
#define gyou 5;
//DATA[gyou][retsu]の列数を指定します
#define retsu 10;
//ファイルの読み込み内容 [行][列]
double DATA[gyou][retsu];
//ファイルの書き込み内容 [要素数] ※要素数は、上の配列の行*列
double sortedArray[gyou*retsu];
/**
* ファイルを読む
*/
int readFile(){
FILE *fp;
char c,data[256];
int i,j,k;
for(i = 0;i < 5;i++)
{
for(j = 0;j < 10;j++)
DATA[i][j] = 0;
}
//ここで読込ファイル名を指定します
fp = fopen( "Book1.csv", "r" ); /* 読み込みモードでオープン */
if( fp == NULL )
{
puts( "ファイルが開けません" );
return 1;
}
i = 0;
j = 0;
k = 0;
while(1)
{
c = fgetc( fp ); /* 1文字読み込み */
if( feof( fp ) ) break;
if(c == ',')
{
data[k] = '\0';
DATA[i][j] = atof(data);
j++;
k = 0;
}
else if(c == '\n')//ここで、区切りの文字を指定します。
{
data[k] = '\0';
DATA[i][j] = atof(data);
i++;
j = 0;
k = 0;
}
else
{
data[k] = c;
k++;
}
}
fclose( fp );
for(i = 0;i < 5;i++)
{
for(j = 0;j < 10;j++)
printf("%.1f\t",DATA[i][j]);
printf("\n");
}
return 0;
}
/**
* sortedArray[]をスペース区切りで
ファイルに書き込みます。
*/
int writeFile(){
int i = 0;
FILE *file;
//ここで書込ファイル名を指定します
file = fopen("test.txt","w");
for(i=0;i<gyou*retsu;i++){
fprintf(file,"%f ",sortedArray[i]);
}
fclose(file);
return 0;
}
/**
* 配列をバブルソートします。
*/
int sortArray(){
//DATA[][]の値をsortedArray[]に挿入します
int i, j, k;
for(i=0 ;i < gyou; i++){
for(j=0; j< retsu; j++){
sortedArray[k] = DATA[i][j];
}
}
return 0;
}
int main(void){
readFile();
sortArray();
return 0;
}
最終更新:2007年10月20日 18:14