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

code::blocks не находит .h файл - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.84
Andrey I
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 3
28.01.2013, 20:05     code::blocks не находит .h файл #1
Написал в code::blocks пример из книги Х.Дэйтел "как программировать на C++"

при компиляции выдает: Fatal error: time1.h: No such file or dirrectory

очевидно, что компилятор не знает пути к .h файлу. Где его прописать или что сделать чтобы программа скомпилировалась?

Имеется вот что (все файлы в одном каталоге):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// TIME1.H
 
#ifndef TIME1_H
#define TIME1_H
 
using namespace std;
 
class Time{
 
public:
    Time();
    void setTime(int, int, int);
 
    void printMilitary();
    void printStandart();
 
private:
    int hour;
    int minute;
    int second;
};
#endif
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
#include <iostream>
#include <TIME1.H>
 
 
using namespace std;
 
class Time{
 
public:
    Time();
    void setTime(int, int, int);
 
    void printMilitary();
    void printStandart();
 
private:
    int hour;
    int minute;
    int second;
};
 
Time::Time() { hour = minute = second = 0; }
 
void Time::setTime (int h, int m, int s)
{
    hour = (h >= 0 && h < 24) ? h : 0;
    minute = (m >= 0 && h < 60) ? m : 0;
    second = (s >= 0 && h < 60) ? s : 0;
}
 
void Time:: printMilitary ()
{
    cout << (hour < 10 ? "0":"") << hour << ":"
         << (minute < 10 ? "0":"") << minute << ":"
         << (second < 10 ? "0":"") << second ;
}
 
void Time:: printStandart()
{
    cout << ( (hour == 0 || hour == 12) ? 12 : hour % 12)
         << ":" << (minute < 10 ? "0":"") << minute << ":"
         << (second < 10 ? "0":"") << second
         << (hour < 12 ? " AM" : " PM");
}
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
#include <iostream>
#include <time1.h>
 
using namespace std;
 
main()
{
    Time t;
 
    t.printMilitary();
    cout << endl;
    t.printStandart();
 
    t.setTime(12, 30, 55);
    cout << endl;
    cout << endl;
 
    t.printMilitary();
    cout << endl;
    t.printStandart();
 
    t.setTime(19, 9, 34);
    cout << endl;
    cout << endl;
 
    t.printMilitary();
    cout << endl;
    t.printStandart();
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2013, 20:05     code::blocks не находит .h файл
Посмотрите здесь:

C++ Code::Blocks
C++ Code::blocks
MS VS in CODE BLOCKS C++
C++ Ошибки в Code Blocks
C++ code::blocks 10.05
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
28.01.2013, 20:13     code::blocks не находит .h файл #2
Здравствуйте в коде вы написали:
C++
1
#include <time1.h>

Попробуйте поставить просто:

C++
1
#include <time.h>
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
28.01.2013, 20:18     code::blocks не находит .h файл #3
Хедеры разные.
Для удобства работы, создавайте проект, а дальше Project >> Add files, либо в CB просто File >> New >> Empty File и подтвердите "Добавить в проект".
Советую
C++
1
main()
исправить на
C++
1
int main()
т.к. запись устарела и была валидна лишь на момент написания книги. Вдобавок, в языке С++ если идентификатор возвращаемого значения функции не указан, то он по-умолчанию void, что противоречит стандарту (main must be int).
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
28.01.2013, 20:19     code::blocks не находит .h файл #4
C++
1
#include "time1.h"
Свои .h в кавычках надо.
Andrey I
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 3
28.01.2013, 21:28  [ТС]     code::blocks не находит .h файл #5
Кавычки действительно забыл, вместо них <>. Поправил.

int поставил, но пока все равно не собирается.

Попробую проект организовать с использованием кнопки add to project

#include <time.h> здесь вроде бы не надо, т.к. не вызываются функции этой библиотеки. посмотрел в исходнике, там тоже нет этого.

Добавлено через 32 минуты
Быть может в code::blocks надо указать путь, где .h файл находится в настройках компилятора??

Код проверил несколько раз, все в норме. Нашел еще ошибку. все исправил... но проект не собирается работать...
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
28.01.2013, 21:42     code::blocks не находит .h файл #6
Так какое название хедера? <time1.h> или <TIME1.H>. С++ регистрозависимый
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
28.01.2013, 21:45     code::blocks не находит .h файл #7
Давайте по порядку:
1. Создаете новый проект
code::blocks не находит .h файл

2. В main.cpp вставляете ваш main, с заменой кавычек у хедера сверху на "time1.h"
code::blocks не находит .h файл

3. Добавляете новый пустой файл
code::blocks не находит .h файл

4. Подтверждаете, что добавляете к сущ. проекту
code::blocks не находит .h файл

5. Сохраняете как time1.h, вставляете туда ваш код из первых cpp тегов. Аналогично добавляете в проект файл time1.cpp
code::blocks не находит .h файл

6. Удаляете объявление класса из .cpp файла, изменяете кавычки. Компилируете
code::blocks не находит .h файл

Всё работает!
Также прикрепляю к посту готовый проект.
Вложения
Тип файла: rar Time.rar (59.5 Кб, 65 просмотров)
Andrey I
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 3
28.01.2013, 21:56  [ТС]     code::blocks не находит .h файл #8
Все заработало! Спасибо!

Я неправильно создавал проект. У меня даже кнопка add to project не работала.

Ошибка была вот в чем: я создавал пустой текстовый файл с именем time1.h, time1.cpp, fig6_5.cpp и открывал их через: File -> New -> File -> CPP project и CPP header

Думал что достаточно нахождения оных в одной папке для успешной сборки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2016, 18:01     code::blocks не находит .h файл
Еще ссылки по теме:

sdl и code::blocks C++
C++ Code Blocks и файл ресурсов
C++ Code::Blocks

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

Или воспользуйтесь поиском по форуму:
vadomas
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 1
16.03.2016, 18:01     code::blocks не находит .h файл #9
MrGluck от души помог, спасибо !
Yandex
Объявления
16.03.2016, 18:01     code::blocks не находит .h файл
Ответ Создать тему
Опции темы

Текущее время: 05:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru