Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Dz_ViTo
14 / 0 / 1
Регистрация: 14.07.2011
Сообщений: 51

При компиляции не может найти хеадер

13.08.2011, 17:22. Показов 1176. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу.. она пашет, но когда весь код в main.cpp.
Решил ее усовершенствовать, чтобы мейн имел красивее вид, сделал вот так:
main.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
#include <iostream>
#include <fstream>
#include "clRead.h"
 
int main(){
    ifstream iF("One.txt", ios::in);
    clRead A[P];
    int iV = 0;
    if(!iF){
      cout<<"Error! File not found! \n";
      system("PAUSE");
      return 0;
    }else{
        while(!iF.eof()){
          A[iV].Read(iF);
          iV++;
        }
    }
    for(int i = 0; i<P; ++i)
      A[i].Show();
    clRead *p;
    p->MetVer(A, iV);
    system("PAUSE");
    return EXIT_SUCCESS;
}
clRead.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef CLREAD_H
#define CLREAD_H
 
class clRead{
        int cliQ;
        string clsQ;
        // Структура для "відповідь-питання"
        struct clsc{
          string clsA;
          string clvsA;
        }B[3];
        public:
        int Read(ifstream &F);// читаємо
        int Shufle();// мішаємо
        int Show();//показуємо
        bool Verification();// перевіряємо
        void MetVer(clRead A[], int iVar);//одразу все перевіряємо
};
#endif // CLREAD_H
clRead.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
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "clRead.h"
#include <ifstream>
#include <iostream>
#define N 10
int clRead::Read(ifstream &F ){
    int iSymbol = 1, iQuest = 0;
    string sFf;
    int i = 0;
    while(iSymbol){
      if(!iQuest){
        getline(F, sFf);
        this->clsQ = sFf;
        iQuest++;
      }
      F>> sFf;
      if(sFf == "/"){
         Shufle();
         F.ignore();
         return 0;
      }
      else if(sFf == "-"|| sFf == "+"){
            this->B[i].clsA= sFf;
            getline(F, sFf);
            this->B[i].clvsA = sFf;
            i++;
           }
    }
    return 0;
}
int clRead::Shufle(){//=== перемішування
  srand(time(NULL));
  std::cout<<rand()<<std::endl;
  int a = (rand()+sizeof(this->B[1].clvsA))%N;
  clRead sVar;
  if( a < 2 ){
    sVar.B[1] = this->B[a];
    this->B[a] = this->B[a+1];
    this->B[a+1] = sVar.B[1];
    }else{
     sVar.B[1] = this->B[a];
     this->B[a] = this->B[a-2];
     this->B[a-2] = sVar.B[1];
    }
   return 1;
}
int clRead::Show(){
  std::cout<< ") "<<this->clsQ<< std::endl;
  int j=0;
  while(j < N){
    std::cout<< 1+j << ") "<<this->B[j].clvsA<< std::endl;
    j++;
  }
  std::cout<<"Enter the number of answers: ";
  std::cin>>this->cliQ;
  --cliQ;
  std::cout<< std::endl;
  return 1;
}
bool clRead::Verification(){
  if(this->B[cliQ].clsA == "+")
    return true;
    else
      return false;
}
 
void clRead::MetVer(clRead A[], int iVar){
  float Result = 0;
  for(int i = 0; i <iVar; ++i){
    if(A[i].Verification())
        Result++;
    }
  std::cout<<"You result: "<<Result <<" in percentage: "<<((Result/iVar)*100)<<"%. "<< std::endl;
}
Пишет что не может найти clRead.h
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.08.2011, 17:22
Ответы с готовыми решениями:

При компиляции не может найти mpi_cxx
День добрый, компилирую программку через Makefile и mpicxx (OpenMPI), но при компиляции выдает /usr/bin/ld: cannot find -lmpi_cxx ...

не может найти какой-то файл при компиляции
я только что скачал с ++ 2010 и при компиляции выходит следующая ошибка Не удается запустить программу ...

При компиляции формы не может найти .exe файл
Я создал форму для задания, вот само задание: Описать структуру FLIGHT, которая содержит следующие поля: a) arrival - название...

12
12 / 14 / 2
Регистрация: 03.08.2011
Сообщений: 213
13.08.2011, 18:01
Цитата Сообщение от Dz_ViTo Посмотреть сообщение
clRead A[P];
помойму это синтаксически неправильно но непроверял

Добавлено через 17 минут
Цитата Сообщение от Drum and C++ Посмотреть сообщение
помойму это синтаксически неправильно но непроверял
может я ошибаюсь
0
 Аватар для Dz_ViTo
14 / 0 / 1
Регистрация: 14.07.2011
Сообщений: 51
13.08.2011, 18:53  [ТС]
нет... там все ок
компилятор CodeBlocks, и создаю клас вроде норм.. но не то
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.08.2011, 21:00
Цитата Сообщение от Dz_ViTo Посмотреть сообщение
Пишет что не может найти clRead.h
clRead.h находится в той же папке, что main.cpp?
0
 Аватар для Dz_ViTo
14 / 0 / 1
Регистрация: 14.07.2011
Сообщений: 51
14.08.2011, 16:48  [ТС]
Нет
При создании проекта создаются пару папок для дополнительных файлов.
хеадер создается в папке include
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
14.08.2011, 16:50
ну так пропиши ему полный путь в "".
0
 Аватар для Dz_ViTo
14 / 0 / 1
Регистрация: 14.07.2011
Сообщений: 51
15.08.2011, 12:34  [ТС]
OstapBender, спасибо, ето знем...
Кстати лучше чтоб путь был на английском
НО как же сделать чтоб не указывать полный путь, ето же должно быть возможно?
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
15.08.2011, 13:07
Цитата Сообщение от Dz_ViTo Посмотреть сообщение
OstapBender, спасибо, ето знем...
Кстати лучше чтоб путь был на английском
НО как же сделать чтоб не указывать полный путь, ето же должно быть возможно?
а файл библиотеки, рядом с main.cpp трудно положить?)
в msvs проекту можно указать доп.папки, откуда тянуть include. Не знаю, есть ли такая возможность в codeblocks.
0
 Аватар для Dz_ViTo
14 / 0 / 1
Регистрация: 14.07.2011
Сообщений: 51
15.08.2011, 14:17  [ТС]
вопрос решен
еще есть такая проблема: в *. h есть объявления типа string, на которые компиляторы матерятся, попытался подключать в *. h <string> но ситуация не меняется ...
Возможно кто даст ссылку на эту тему почитать =)
Ето по поводу сборки программ
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
15.08.2011, 16:06
Dz_ViTo, можно чуть более внятно? Как и что подключаете, и как матерятся "компиляторы"?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
15.08.2011, 16:18
Думаю проблемма связана с директивой #pragma once и отсутствием подключения cpp-ника с прототипами функций из clRead.h

В clRead.h вставить #pragma once
C++
1
2
3
4
5
6
7
8
#ifndef CLREAD_H
#define CLREAD_H
 
///////////////
#pragma once
//////////////
 
class clRead{
В main.cpp вставить clRead.cpp
C++
1
2
3
4
5
6
#include <iostream>
#include <fstream>
#include "clRead.h"
//////////////
#include "clRead.cpp"
//////////////
0
 Аватар для Dz_ViTo
14 / 0 / 1
Регистрация: 14.07.2011
Сообщений: 51
16.08.2011, 13:04  [ТС]
та уже все норм... хотя страно когда в средствами компилятора создаеш класс, а он не может потом найти хеадер класса(CodeBlocks)в етом же проекте(!), сделал потом на QtCreator у него проблем таких небыло.
Што касается string и fstream нужно указать пространство имен(std::string и т.д.)
0
1 / 1 / 0
Регистрация: 19.04.2009
Сообщений: 13
16.08.2011, 14:41
-=ЮрА=-, там дефайны, не нужна #pragma once. И исходник инклюдить не надо, его линкер возьмет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2011, 14:41
Помогаю со студенческими работами здесь

При компиляции проги на JDK1.2.2 выдает ошибку, что не может найти пакет java.servlet.*
HI,ALL! Установил jdk1.2.2 и jsdk1.2, объединил эти папки. в autoexec.bat прописал путь к bin каталогу. Начало проги такое: ...

Javac не может найти файл .java для компиляции
Добрый вечер. Есть проблема. Javac не может найти файл .java для компиляции. Я уже указала все значения переменных JAVA_HOME и Path ...

При компиляции программа не выдаёт ошибок, но в итоге ничего не может сделать
Добрый день! Пишу программу на Delphi. Почему-то при запуске появляется форма со всеми компонентами, но ничего не работает - не нажимаются...

Подскажите пожалуйста в чем может быть трабл при компиляции класса выдает ошибку
Подскажите пожалуйста в чем может быть проблема: при компиляции класса выдает ошибку: (Ошибка LNK2001 неразрешенный внешний символ...

Ошибка при компиляции: Internal compiler error Процесс не может получить доступ к файлу Program1.exe
написал обычную программу program h; begin writeln('Hello, world'); end. далее скомпилировал и попытался запустить и ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru