fatal error C1004: непредвиденное обнаружение конца файла что делать?!
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
сделала... ошибка C1004: непредвиденное обнаружение конца файла все равно осталась.. я щас уже с ума сойду..
да программирование это вообще не по моей специальности.. я не понимаю зачем нам поставили его в учебный план вообще?! ((
да программирование это вообще не по моей специальности.. я не понимаю зачем нам поставили его в учебный план вообще?! ((
error LNK2005: "float __cdecl func1(float,float)" (?func1@@YAMMM@Z) уже определен в func.obj
error LNK2005: "float __cdecl func2(float,float)" (?func2@@YAMMM@Z) уже определен в func2.obj
error LNK1169: обнаружен многократно определенный символ - один или более
что это за страшные вещи?!
error LNK2005: "float __cdecl func2(float,float)" (?func2@@YAMMM@Z) уже определен в func2.obj
error LNK1169: обнаружен многократно определенный символ - один или более
что это за страшные вещи?!
func2.cpp исправить следующим образом
Ошибка вываливается потому, что у вас два раза включен один и тот же файл.
Поэтому в главный файл надо включить ТОЛЬКО func2.cpp:
Код: Выделить всё
#include "stdafx.h"
#include <math.h>
#include "func.cpp"
float func2 (float c,float d)
#ifdef TYPE
{return (float) func1((int) c,(int) d);}
#else
{return func1 (c,d);}
#endif
Поэтому в главный файл надо включить ТОЛЬКО func2.cpp:
Код: Выделить всё
#include "func2.cpp"
файл func.h
файл func.cpp
файл func2.h
файл func2.cpp
файл main.cpp
Код: Выделить всё
#ifdef TYPE
int func1 (int a, int b);
#else
float func1 (float a, float b);
#endif
Код: Выделить всё
#include "func.h"
#ifdef TYPE
int func1 (int a, int b){ return a*a + b*b; }
#else
float func1 (float a, float b) {return a*a + b*b;}
#endif
Код: Выделить всё
float func2 (float c,float d);
Код: Выделить всё
#include "func2.h"
#include "func.h"
float func2 (float c,float d)
#ifdef TYPE
{return (float) func1,(int) c,(int) d;}
#else
{return (float)func1 (c,d);}
#endif
Код: Выделить всё
#include <iostream.h>
#include "func2.h"
#include "func.h"
void main()
{
float a,b;
cout<<"Введите значения a и b";
cin>>a>>b;
func1(a,b);
func2(a,b);
}
отлично ошибок нет, но теперь нет возврата а*а+b*b! ((
не происходит вызов функции насколько я понимаю ((
не происходит вызов функции насколько я понимаю ((
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
По какому принципу решил, что возврата нету? Куда должен быть возврат? На экран? А на экран ты ничего и не выписывала. Ты только функцию вызвала.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Вызов функции происходит и она возвращает значение, в данном случае в "никуда". Нет вывода результата её работы.Круг писал(а):отлично ошибок нет, но теперь нет возврата а*а+b*b! ((
не происходит вызов функции насколько я понимаю ((
так можно увидеть рехультат func1:
Код: Выделить всё
cout<<func1(a,b);
огромное спасибо ))) заработало )))
что значит составить программу, демонстрирующую все этапы условной компиляции?!
кто нить может объяснить и/или продемонстрировать как это?!
кто нить может объяснить и/или продемонстрировать как это?!
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Подозреваю, что именно этим ты и занималась раньше, разбираясь описанной ранее программой. Условная компиляция как реализована в языке С++ следующими директивами препроцессора: #if, #ifdef, #ifndef, #else, #endif.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.