HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 25.09.2009, 20:10
Hiro Protagonist
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме:
193434

Репутация: 79
Отправить сообщение для Hiro Protagonist с помощью ICQ
По умолчанию

гм, кабэ в последней студии все нормально и это отвечает стандарту. Kreoda чтото ты темнишь =\ код и версию студии сюда кидай.

Последний раз редактировалось Hiro Protagonist; 25.09.2009 в 20:26..
 
Ответить с цитированием

  #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;
}
 
Ответить с цитированием

  #3  
Старый 25.09.2009, 21:54
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

а структуру то зачем заводишь? можно просто массив переменных объявить, а то бред получается - излишнее усложнение. или планируется делать класс и добавлять методы?
 
Ответить с цитированием

  #4  
Старый 25.09.2009, 21:55
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию

2Ra$cal
Да я написал класс, просто весь выкладывать смысла нет, а вот в этом моменте у меня проблемы.
 
Ответить с цитированием

  #5  
Старый 25.09.2009, 22:00
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

temp.aPoints[i]=(double)*str; - негодится
_gcvt() используй
 
Ответить с цитированием

  #6  
Старый 25.09.2009, 22:07
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию

Цитата:
Сообщение от Ra$cal  
temp.aPoints[i]=(double)*str; - негодится
_gcvt() используй
Так мне же наоброт нужно из строки в double, gcvt() делает обратный преобразования из double в строку.

Если я не туда посмотрел, то дай ссылочку на ресурс где ф-ция разобранна.
 
Ответить с цитированием

  #7  
Старый 25.09.2009, 22:14
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

подскажу хитрый финт, как пользоваться документацией. вбиваешь "gcvt msdn" в гугле. открываешь страницу. смотришь вниз. видишь

See Also
Reference
Data Conversion
Floating-Point Support
atof, _atof_l, _wtof, _wtof_l
_ecvt
_fcvt

методом напряжения извилин понимаешь что нижние функции похожи на эту, но есть atof/wtof что говорит об ascii/wide, т.е. о строках, и f - float. итого получается что мы нашли нужную функцию просто проанализировав док известной нам функции. собсно это и есть основной способ добычи информации.
 
Ответить с цитированием

  #8  
Старый 25.09.2009, 22:34
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию

2Ra$cal
Мог бы просто посоветовать ссылку msdn (буду теперь впервую очередь там смотреть) а не указывать ф-цию которая подходит для других случаев и намекать на то что я лентяй.

В итоге код всеравно не работает, теперь показывает что все 0 помимо ф-ции atof пробовал strtod.
 
Ответить с цитированием

  #9  
Старый 25.09.2009, 22:38
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

да я не наводил на лень. просто спешу и не вникал в вопрос. поэтому и дал описание не той функции. ну и раз уж так получилось решил рассказать как пользоваться доками =)
Цитата:
В итоге код всеравно не работает, теперь показывает что все 0
проверь, нету ли пробелов, и разделитель целой и дробной части. возможно нужно локаль грузить русскую, или реплейсить точки на запятые или наоборот.
 
Ответить с цитированием

  #10  
Старый 25.09.2009, 22:47
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию

2Ra$cal
Пробелов лишних вроде нет( только те что разделяют числа, единственное что может strtok нет работать я вот эту строчку совсем не понимаю str=strtok(NULL," ") С разделителями поэксперементировал тот же хрен только в левой руке. Вообщем тривиальная задча а сижу над ней часа 4 точно.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ