
25.09.2009, 21:38
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме: 262809
Репутация:
21
|
|
Помогите написать функцию чтения из файла чисел типа double и поместить их в переменные.
Ниже привожу код, при компиляции выдает херню какую - то прочитанные числа не совпадают с
тем что написанно в оригинале.
текстовый файл вида
10.2 12.5 17.6 15.2
14.3 52.1 10.7 11.7
и т.д.
тип переменной elem
Код:
#define razmer 4
struct points
{
double aPoints[razmer];
};
Эта функция читает файл построчно, переменная kolvo следит за тем чтобы строк не было больше
чем массив.
Код:
int cCluster::load_file(char* name){
cout<<"Test function \n";
char line[100],*stroka;
FILE *fp;
fp=fopen(name,"r");
int i=0;
while(!feof(fp)){
if(i>kolvo)
break;
stroka=fgets(line,100,fp);
printf("Here is read %d line \n here znacheniy \n %s",i,stroka);
elem[i]=str2points(stroka);
i++;
}
fclose(fp);
return 0;
}
Функция str2points(char* line) разбивает строку на числа с помощью ф-ции strtok получает
числа и приводит их к типу double.
Код:
points cCluster::str2points(char* line){
char *str;
int i=0;
points temp;
str=strtok(line," ");
printf("here is strtok %s\n",str);
while(str!=NULL){
if(i>razmer)
break;
temp.aPoints[i]=(double)*str;
str=strtok(NULL," ");
printf("here is strtok %s\n",str);
printf("here is point %d\n",temp.aPoints[i]);
}
return temp;
}
|
|
|