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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.90
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
#1

include и некоторые мелочи - C++

07.01.2011, 15:36. Просмотров 3889. Ответов 74
Метки нет (Все метки)

Вот код моей первой программы на C++:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main () {
    cout << "Hello world!\n";
    _getch();
    return 0;
}
Увы и ах, но она не сработала. Вот ошибка:
c:\documents and settings\admin\мои документы\visual studio projects\hello world\hello world.cpp(14): fatal error C1010: unexpected end of file while looking for precompiled header directive

И ещё такие вопросы возникли:
1. В папке resource files находятся файлы, которые используются как ресурсы - звуки, картинки и т. д. и т. п., в папке source - исходный код, а в папке header files что находится? Как я понял, так только .h файлы, но что они в себе несут? Функции? Или может только их можно подключить с помощью директивы include?

2. Чем отличается формат .cc от .cpp?

3. В каком порядке выполняются исходные файлы и файлы ресурсов, если их несколько? Я вообще так всё представляю - вначале загружаются ресурсы, потом header files, а после уже начинает выполняться код. Я правильно мыслю?

4. <iostream> и <conio.h>. Это стандартные файлы ведь? То есть их создавать не нужно, они уже в самом ядре C++ есть? То, что <iostream> есть, это понятно - он без расширения, то есть "особый" файл, а насчёт conio.h сомневаюсь - он ведь с расширением Как-то это странно - стандартный файл с расширением...

5. Зачем в проекте создавать под-проекты?

Вроде всё Извините, если много вопросов, просто новичок
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 15:36     include и некоторые мелочи
Посмотрите здесь:

Подскажите, в тесте некоторые мелочи - C++
Укажите формат описания массива: а)тип_элемента имя б)тип_элемента имя В программе...

Вопрос по мелочи - C++
Здравсвуйте! Когда-то , недавно, мы обсуждали тему среднее арифметическое числа. Я вроде понял её, но есть маленький нюанс. Вот код: ...

Программа подсчета мелочи - C++
Всем привет, возникла такая проблема. Написал программу для подсчета мелочи, что у меня накопилась, однако думаю, что ее можно сократить...

Главная функция (вводит некоторые значения и передает их и ссылки на некоторые переменные в функцию) - C++
Написать главную функцию, которая вводит некоторые значения и передает их и ссылки на некоторые переменные в функцию. Получив результаты...

INCLUDE - C++
Подскажите что обозначаеть include . #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;crypt.h&gt; #include...

#include - C++
не понимаю какие &lt;stdio.h&gt;,&lt;time.h&gt; и т.д использовать. пыталась найти их характеристики в интернете, но толкового ответа не нашла,...

#include в C++ - C++
Здраствуйте, скажите пожалуйсто какие #include являются основными, я открыл папку include у себя в компелятори, там кучи файлов, все...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
07.01.2011, 15:53     include и некоторые мелочи #2
1. Заголовочный файл - файл, содержащий определения типов данных, структуры, прототипы функций, перечисления, макросы препроцессора.
Заголовочный файл в общем случае может содержать любые конструкции языка программирования, но на практике исполняемый код (за исключением inline-функций в C++) в заголовочные файлы не помещают. Например, идентификаторы, которые должны быть объявлены более чем в одном файле, удобно описать в заголовочном файле, а затем его подключать по мере надобности

2. .cc - это язык C, а .cpp -С++

4. <iostream> - заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Он включён в стандартную библиотеку C++.
<conio.h> - это такой майкрософтовский велосипед, который непонятно зачем вообще нужен и что с ним делать, но именно в нем валяется _getch();
Функция _getch() используется как команда паузы (чтоб экран не тух после выполнения программы). Но если используется библиотека iostream(она у тебя включена), то паузу можно сделать и cin.get();

Чтобы убрать ошибку нужно:
1)Поместить в самое начало .cpp файла #include "stdafx.h"

Код такой:
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main () {
        cout << "Hello world!\n";
        cin.get();
        return 0;
}
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
07.01.2011, 15:57     include и некоторые мелочи #3
мой те совет выкинь студию подальше, если пишеш простенькие консольники то среде возьми по проше и по легче...там к примеру devc++ или codeblocks или еще че нить...

4. <iostream> и <conio.h>. Это стандартные файлы ведь?.... <conio.h> эт сишная, для _getch() у с++ есть cin.get(); для которой достаточно <iostream> подключить))
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
07.01.2011, 16:01     include и некоторые мелочи #4
Цитата Сообщение от eczo Посмотреть сообщение
мой те совет выкинь студию подальше, если пишеш простенькие консольники то среде возьми по проше и по легче...там к примеру devc++ или codeblocks или еще че нить...

4. <iostream> и <conio.h>. Это стандартные файлы ведь?.... <conio.h> эт сишная, для _getch() у с++ есть cin.get(); для которой достаточно <iostream> подключить))
Имхо пускай парень привыкает к VS ибо например в DEV-C++ нет такого:
C++
1
2
HANDLE hndl=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|FOREGROUND_INTENSITY);
И как там реализовывать цвет не понятно
(один из примеров)
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
07.01.2011, 16:09     include и некоторые мелочи #5
А студию выкидывать не надо, плохой совет!

Добавлено через 2 минуты
В conio.h к примеру есть kbhit - проверка ввода с клавиатуры, нужная штука!
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
07.01.2011, 16:14     include и некоторые мелочи #6
Цитата Сообщение от TBIKC Посмотреть сообщение
Имхо пускай парень привыкает к VS ибо например в DEV-C++ нет такого:
C++
1
2
HANDLE hndl=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|FOREGROUND_INTENSITY);
И как там реализовывать цвет не понятно
(один из примеров)
читайте текст внимательно---"выкинь студию подальше, если пишеш простенькие консольники "
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.01.2011, 16:17  [ТС]     include и некоторые мелочи #7
Всем большое спасибо! Многое прояснилось. Но
1. Значит, .cpp файлы подключать нельзя, да?

2. А каким образом строчка #include "stdafx.h" поможет? И почему название в кавычках, а не в < > ?

3. По поводу оператора << - это что знак присвоения? о_О Я прочитал, что то, что справа подставляется в левую часть, знач присвоение, но каким образом тогда присвоение переменной cout строки выводит её на экран? о_О Здесь явно что-то нечисто.

4. А можно сказать так:
C++
1
2
3
string main () {
    return "0";
}


5. И что означает using namespace std;?

Добавлено через 36 секунд
robober, учту, спасибо
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.01.2011, 16:19     include и некоторые мелочи #8
Hagrael, На все твои вопросы ответит любая книжка по С++ для начинающих.
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
07.01.2011, 16:28     include и некоторые мелочи #9
<< - в твоем случае вывод, а cout - поток куда выводить или побитовый сдвиг влево

Добавлено через 3 минуты
using namespace std; - использования стандартизации имен, без него пришлось бы делать так:
std::cout << "БлаБлаБла";

А вообще ты можешь использовать свое пространство имен, но пока об этом не думай:
using namespace myNamespace;
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
07.01.2011, 16:28     include и некоторые мелочи #10

Не по теме:

От спасибо бы не отказался в сообщениях



1. Вообще то наоборот
2. Обычно в stdafx.h укладываются общие для всех файлов .cpp "ресурсы".
3. В книжке
4. Нет (аттач)
5. using namespace std;
строка нужна для того, чтоб не писать std::cout, std::cin и т.п., а просто cout, cin...

И вообще начни с чтения книжки )
Миниатюры
include и некоторые мелочи  
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
07.01.2011, 16:29     include и некоторые мелочи #11
как-то некорректно получилось:
"<<" - вот это побитовый сдвиг влево
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.01.2011, 17:05  [ТС]     include и некоторые мелочи #12
TBIKC,
1. Я так понял, что кавычки там потому, что этот header file не стандартный. Так?
2. Понял.
3. Вот это как раз не понял, но ладно, постараюсь разобраться.
4. То есть можно писать вообще без return? o_O Это как я читал нужно для отладки. Знач, необязательно, так?
5. А std - это класс что ли? И что всё-всё входит в этот класс? о_О
Ещё раз спасибо за ответы
Evg
Эксперт CАвтор FAQ
17462 / 5700 / 361
Регистрация: 30.03.2009
Сообщений: 15,644
Записей в блоге: 26
07.01.2011, 17:10     include и некоторые мелочи #13
Hagrael, почитай разделы 1, 2 и 10 по ссылке Препроцессорные директивы в C/C++ (#include, #define и прочее)
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
07.01.2011, 17:15     include и некоторые мелочи #14
4. наоборот нужно писать!
5. std это пространство имен
google + wiki
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.01.2011, 17:46  [ТС]     include и некоторые мелочи #15
TBIKC, что значит "наоборот"? И значит можно подключать даже .cpp файл (конечно же это бессмысленно), а так же из .h-файла можно подключать другие .h-файлы.
Evg
Эксперт CАвтор FAQ
17462 / 5700 / 361
Регистрация: 30.03.2009
Сообщений: 15,644
Записей в блоге: 26
07.01.2011, 17:58     include и некоторые мелочи #16
Цитата Сообщение от Hagrael Посмотреть сообщение
TBIKC, что значит "наоборот"? И значит можно подключать даже .cpp файл (конечно же это бессмысленно), а так же из .h-файла можно подключать другие .h-файлы.
В посте #14 дал тебе ссылку. Если прочтёшь и осознаешь - куча вопросов отпадёт сама собой
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.01.2011, 18:22  [ТС]     include и некоторые мелочи #17
Evg, и появится скорее всего тоже Но однако я читаю.
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
07.01.2011, 20:05     include и некоторые мелочи #18
Цитата Сообщение от Hagrael Посмотреть сообщение
TBIKC, что значит "наоборот"? И значит можно подключать даже .cpp файл (конечно же это бессмысленно),
Можно! И иногда в этом даже есть смысл!
а так же из .h-файла можно подключать другие .h-файлы.
Конечно! И именно так всюду и делается!
Правда, применяется некая простая техника, чтоб исключить рекурсивные вызовы (а значит - бесконечно зацикливающиеся) подключения.
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 09:08  [ТС]     include и некоторые мелочи #19
Day, понятно.
Evg, там про кавычки и угловые скобки не написано. Насколько я понял, в кавычках пишешь путь к файлу, созданному программистом, а к файлам из стандартной библиотеки путь пишется в угловых скобках, так? Но такой вопрос - почему <conio.h> пишется с .h, а <iostream> просто так? Логичнее было бы сделать все файлы из стандартной библиотеки без расширения

Добавлено через 56 минут
И ещё такой вопрос - такой код правильный?
C++
1
2
3
#define MACROS1 1
#define MACROS2 MACROS1
int a=MACROS2
То есть заменяются ли в директивах макросы?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2011, 09:28     include и некоторые мелочи
Еще ссылки по теме:

Include - C++
Вот давно хотел разобраться. Вот допустим есть у меня 6 файлов A.h A.cpp ,B.h B.cpp ,C.h C.cpp , в каждом h файле описан класс , а в cpp...

Директива #include - C++
Всем привет. Пишу программу по книге Дейтел Х., Дейтел П - Как программировать на C++ FIG6_5.cpp, я компилирую проект FIG6_5.dev вместе с...

#include <vcl.h> - C++
Скажите пожалуйста, что это за билдеровская приблуда?

Инклюиды - include - C++
Доброго времени суток ! столкнулся с такой проблемой что нахожу какие-то примеры программ в инэте запускаю у себя а оно ругается что нет...

ошибка с include - C++
вобщем, проблема в следующем: при компиляции выдает ошибки Unable to open include file iostream и vector, с std тоже ошибка в объявлении.....


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.01.2011, 09:28     include и некоторые мелочи #20
Hagrael, имена файлов, которые пишутся в угловых скобках, ищутся по стандартным путям, о которых известно компилятору, а имена, записанные в кавычках, ищутся только в папке, в которой находится данный исходник. По сути, можно и имена самописных хидеров писать в угловых скобках, это может прокатить, но лучше придерживаться стандартов.
И чего вы так зациклились на этом расширении? И iostream и прочие плюсовые хидеры раньше имели расширение .h, потом, после выхода стандарта его убрали, ввели пространства имён и т.д. А все сишные хидеры (включая conio) - это древние файлы, да к тому же предназначенные для си-программ, потому в них и оставили расширения.
На счёт кода, а почему бы не проверить самостоятельно, зачем спрашивать на форуме, чему равно дважды два, не удосужившись запустить калькулятор?
Yandex
Объявления
08.01.2011, 09:28     include и некоторые мелочи
Ответ Создать тему
Опции темы

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