Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
#1

вопросы связанные с темой "читай мат.часть" - C++

11.10.2011, 09:09. Просмотров 2321. Ответов 28
Метки нет (Все метки)

Здравствуйте, имется код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#define     fname  argv[1]         /* Archive file name   */
#define     sname  argv[2]         /* Specimen's name     */
int    main(int argc, char **argv)
{
    //int       argc;
    //char    *argv;
 
  //short item_sz ;
  int   fd ;
  int           i;
  char          *s;
  struct ifl    itf [] =
       {{"GGC", 0}, {"SGC", 0}, {"HEADL", 0} };
 double range;
 int flage = 0, sort_flage;
 char  string[256];
 int   term;
 float x;
 
  if ( argc < 2 )
  {
   fputs ( "bad spawn of gen processing", stderr );
    return 1;
    }
 
 
///* read items */
 
  int item_sz = sizeof ( itf ) / sizeof ( itf [0] );  /* Qty of items needed */
 
  if ( (fd = rd_open( fname)) < 0                /* get archive */
          || rd_fil(fd, &hdr)                   /* read file header */
          || rd_spec( fd, sname, &spec)          /* find&read specimen header */
     )
    return FATAL;
}
выдает вот такую ошибку:

E:\alexprojects\TPP/tpp_pr.cpp:91: undefined reference to `rd_open(char*)'

не пойму как решить, помогите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 09:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вопросы связанные с темой "читай мат.часть" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Курсовой проект с темой "Локальные и глобальные переменные. Правила видимости переменных в С++" - C++
Суть програмы заключается в том чтобы показать суть и разницу локальных и глобальных переменных в с++ и правила видимости в с++ также можно...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

28
soft.creator
104 / 104 / 4
Регистрация: 17.10.2010
Сообщений: 283
11.10.2011, 09:29 #2
Кэп сообщает, что функции rd_open, rd_fil и rd_spec неизвестны компилятору; нужно сделать #include файла, в котором они определены
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
11.10.2011, 09:34 #3
видимо #include <fstream>
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
11.10.2011, 09:52  [ТС] #4
#include <fstream> подключено. (((

переменные RD_open лежат в файле dos_arch.h

extern FD rd_open(char* filename); /* readonly */

вот так объявлено, я инклудю этот файл, не выложил этого чтобы не засорять лишним.
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
11.10.2011, 11:05 #5
Цитата Сообщение от TiiL Посмотреть сообщение
я инклудю этот файл, не выложил этого чтобы не засорять лишним.
Это не лишнее, это как-раз важный момент. Кстати, смешное слово - "инклудю"... Так вот, инклудить - так инклудить! Помимо заголовка с объявленными функциями должен быть ещё библиотечный файл, в котором эти самые функции реализованы. С этим как дело обстоит? И если есть-таки библиотеки, как подключаете?
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
11.10.2011, 11:33  [ТС] #6
easybudda, Хорошо

Работаю в среде QT в файле про ссылки делаю на библиотеки:

INCLUDEPATH += ..\lib\
INCLUDEPATH += ..\include

Добавлено через 16 минут
dos_arch.h:
C
1
extern FD rd_open(char* filename); /* readonly */
dos_arch.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*****************************************************************
 *
 *      Function:       rd_open - open archive for reading
 *      Input:          file name
 *      Output:         -
 *      Return:         file descriptor or -1
 *      Side Effects:   check file stamp
 */
 
int             rd_open(char* name)
  {
  return rw_open(name, O_RDONLY);
  } 
 
/*--------------------------------------------------------------*/
 
int             rw_open(char* name, int attr)
  {
  int           fd;
  char          buf[4];
 
  if (  (fd = open(name, attr)) < 0
    ||  read(fd, buf, sizeof(buf)) != sizeof(buf)
    ||  strcmp(buf, stamp)
     )
    {
    close(fd);
    return -1;
    }
  return fd;
  }
а может быть проблема в том что например я инклудю h файл, а в нем на cpp нет ссылки, и из-за этого нет понимания у компилятора?
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
11.10.2011, 11:44 #7
Цитата Сообщение от TiiL Посмотреть сообщение
Работаю в среде QT
Цитата Сообщение от TiiL Посмотреть сообщение
а может быть проблема в том что например я инклудю h файл, а в нем на cpp нет ссылки
Директивой #include нужно заголовок подключать (dos_arch.h в вашем случае), мало того - эта же директива должна присутствовать в dos_arch.cpp, последний должен быть подключён к проекту, а в самом dos_arch.h должно быть
C
1
2
3
4
#ifndef _DOS_ARCH_H
#define _DOS_ARCH_H 1
extern FD rd_open(char* filename); /* readonly */
#endif
Почитайте FAQ местный, там эта тема подробно расписана...
1
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
11.10.2011, 11:51  [ТС] #8
Да всё верно я так и подключил и в dos_arch.h:
C++
1
2
3
4
5
6
# ifndef        ARCH_H
# define        ARCH_H
extern FD  rd_open(char* filename);                     /* readonly */
# undef         FD
 
# endif         /* ARCH_H */
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
11.10.2011, 12:08 #9
Цитата Сообщение от TiiL Посмотреть сообщение
Да всё верно
Цитата Сообщение от easybudda Посмотреть сообщение
эта же директива должна присутствовать в dos_arch.cpp, последний должен быть подключён к проекту
и с этим тоже?
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
11.10.2011, 12:14  [ТС] #10
то есть надо написать #include <dos_arch.cpp> так чтоли?

или в dos_arch.cpp должна быть строка #include <dos_arch.h>, если так то она присутсвует.
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
11.10.2011, 14:07 #11
Цитата Сообщение от TiiL Посмотреть сообщение
или в dos_arch.cpp должна быть строка #include <dos_arch.h>, если так то она присутсвует.
Ну тогда осталось с последним разобраться - файл dos_arch.cpp точно к проекту подключён? Или просто в той же папке лежит?

Не по теме:

Да что же из вас всё клещами-то тянуть приходится?..

0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
12.10.2011, 09:22  [ТС] #12
немного разобрался в чем проблема:

библиотеку соберуют из множества файлов, в один файл libsamum.a, вот только как этот файл подключить к проекту вот это вопрос.

может быть вот так:
LIBS += -libsamum

Добавлено через 18 часов 41 минуту
Цитата Сообщение от TiiL Посмотреть сообщение
немного разобрался в чем проблема:

библиотеку соберуют из множества файлов, в один файл libsamum.a, вот только как этот файл подключить к проекту вот это вопрос.

может быть вот так:
LIBS += -libsamum
а вот так :
C++
1
LIBS += \path\libsamum.a
Добавлено через 24 минуты
Короче подключил всё что нужно всё комплиться но выдает вот такие ошибочки

E:\alexprojects\lib\debug\libsamum.a(dos_arch.o):dos_arch.cpp.data+0x8): multiple definition of `_fmode'

c:/qt/2010.05/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(txtmode.o):txtmode.c.data+0x0): first defined here
Ребята, как быть? что это значит?
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
17.10.2011, 11:41  [ТС] #13
Разобрался со своими ошибками...

Прошу помощи в соединении двух проектов...
1-ый tpp;
2-0й tpp_form:
форма диалогового окна, с которой берется имя файла вывода результата программы tpp, некое число для расчета программы tpp, запуск с программы tpp производиться с кнопки
void TPP::on_GoButton_clicked()
Language: cpp

?
мысль такая весь проект консольный tpp, который состоит из
1-ое:
#include объявление множество файлов библиотек(хейдеров)
2-ое:
объявлений переменных так понимаю глобальных например
#define fname argv[1] /* Archive file name */
#define sname argv[2] /* Specimen's name */
3-ие:
int main(char argc, char **argv)
{
"код программы"
}
Language: cpp

"код программы" поместить в tpp_form под функции int AppCons(void) и эту функцию вызывать по нажатию кнопки void TPP::on_GoButton_clicked(), тогда вопросы такие:
как быть char argc char **argv ?
и будут ли данные с формы занаситься в сам код программы для вычисления?
0
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
17.10.2011, 14:43 #14
По QT можете почитать здесь: http://www.cyberforum.ru/qt/
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
17.10.2011, 14:47  [ТС] #15
Да мне кажется здесь больше не c qt у меня проблема, а со знанием языка.

сделал вот такую весч:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// программа ТРР
void  tpi_tppf (void);
 
#define     fname  argv[1]         /* Archive file name   */
#define     sname  argv[2]         /* Specimen's name     */
//# define     tmp_f  argv[3]         /* Temporary file name */
 
HEADL        head;                   /* headline data       */
 
ZA_FIL  hdr;
ZA_SPEC spec;
  struct item_GGC   gendata;                    /* general data */
  struct item_SGC   specdata;                   /* specimen's data */
  struct calc_GGC   calcdata;                   /* calculated data */
 
FILE        *df;                    /* output   */
 
RFCt0       tpp;            /* TPP data */
RFCf0   fail;           /* Failue data */
RFCr0   raindata;       /* 'rainflow' data */
char    fail_name [ IDSZ ] = "RFCf0",
        rain_name [ IDSZ ] = "RFCr0",
        tpp_name  [ IDSZ ] = "RFCt0";
 
 
void TPP::on_GoButton_clicked(int argc, char **argv)
{
    {
 
    int   fd ;
    int           i;
    char          *s;
    struct ifl    itf [] =
         {{"GGC", 0}, {"SGC", 0}, {"HEADL", 0} };
   double range;
   int flage = 0, sort_flage;
   char  string[256];
   int   term;
   float x;
 
    if ( argc < 2 )
    {
     fputs ( "bad spawn of gen processing", stderr );
      return 1;
      }
 
 
  ///* read items */
 
    int item_sz = sizeof ( itf ) / sizeof ( itf [0] );  /* Qty of items needed */
 
    if ( (fd = rd_open( fname)) < 0                /* get archive */
            || rd_fil(fd, &hdr)                   /* read file header */
            || rd_spec( fd, sname, &spec)          /* find&read specimen header */
       )
      return FATAL;
выдает ошибки :
dialog.cpp: In member function 'void TPP::on_GoButton_clicked(int, char**)':

dialog.cpp:119: error: return-statement with a value, in function returning 'void'
и т.д. одни и теже ошибки по всему телу...

программа отдельно более именее работает. но когда соединяю.. то вот такие вещи
0
17.10.2011, 14:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 14:47
Привет! Вот еще темы с ответами:

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Написать контрольные вопросы по теме "Массивы объектов" (теория) - C++
Массивы объектов - C++ Теория

Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" - C++
В книге С. Бобровского &quot;Самоучитель программирования на языке С++&quot;, написание кодов небольших программ и объяснения для чего все написано. ...

Ищу ответы на вопросы из задачника Златопольского Д. М. "Сборник задач по программированию " - C++
Есть отличнейший задачник Златопольский Д. М. &quot;Сборник задач по программированию &quot; но решений в нём нет((( и найти их что-то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru