Показать сообщение отдельно

  #2  
Старый 25.09.2009, 21:38
Gin
Участник форума
Регистрация: 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;
}
 
Ответить с цитированием