ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

25.09.2009, 19:37
|
|
Участник форума
Регистрация: 26.04.2009
Сообщений: 146
Провел на форуме: 468682
Репутация:
68
|
|
main должен возварщать код возврата, целое, поэтому и int.
не забываем return 0; и откопай книгу, там все напсисано, любую.
И еще не надо путать вызов ф -ции с объявленияем
Последний раз редактировалось click; 25.09.2009 в 19:46..
|
|
|

25.09.2009, 19:39
|
|
Познающий
Регистрация: 09.09.2009
Сообщений: 33
Провел на форуме: 38355
Репутация:
0
|
|
Я и не путаю - это ошибка компиля.Различие я знаю)
|
|
|

25.09.2009, 19:42
|
|
Участник форума
Регистрация: 26.04.2009
Сообщений: 146
Провел на форуме: 468682
Репутация:
68
|
|
Kreoda, где это ты заметил ошибку компилятора? int main() так и должно быть.. или я что-то пропустил?
|
|
|

25.09.2009, 19:48
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
вообще всё зависит от версии компилятора и вообще всякой левой хрени.
Вот в MS VC++ 6.0 можно было описывать
int main(int argc, char* argv[])
а можно было писать и void main()
в всё зависит от функции InitCrt итд итп
|
|
|

25.09.2009, 20:10
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме: 193434
Репутация:
79
|
|
гм, кабэ в последней студии все нормально и это отвечает стандарту. Kreoda чтото ты темнишь =\ код и версию студии сюда кидай.
Последний раз редактировалось Hiro Protagonist; 25.09.2009 в 20:26..
|
|
|

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;
}
|
|
|

25.09.2009, 21:54
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
а структуру то зачем заводишь? можно просто массив переменных объявить, а то бред получается - излишнее усложнение. или планируется делать класс и добавлять методы?
|
|
|

25.09.2009, 21:55
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме: 262809
Репутация:
21
|
|
2Ra$cal
Да я написал класс, просто весь выкладывать смысла нет, а вот в этом моменте у меня проблемы.
|
|
|

25.09.2009, 22:00
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
temp.aPoints[i]=(double)*str; - негодится
_gcvt() используй
|
|
|

25.09.2009, 22:07
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме: 262809
Репутация:
21
|
|
Сообщение от Ra$cal
temp.aPoints[i]=(double)*str; - негодится
_gcvt() используй
Так мне же наоброт нужно из строки в double, gcvt() делает обратный преобразования из double в строку.
Если я не туда посмотрел, то дай ссылочку на ресурс где ф-ция разобранна.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|