Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932

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

07.01.2011, 15:36. Показов 8740. Ответов 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. Зачем в проекте создавать под-проекты?

Вроде всё Извините, если много вопросов, просто новичок
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2011, 15:36
Ответы с готовыми решениями:

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

Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h>
В типизированном файле записаны названия городов и их численность. Увеличить численность каждого города на 5% (Количество жителей всегда...

#include<iostream>// подключение библиотек #include <conio.h> #include <climits>
помогите для этой программы сделать блок-схему. Пожалуйста #include&lt;iostream&gt;// подключение библиотек #include &lt;conio.h&gt; ...

74
21 / 21 / 0
Регистрация: 18.01.2010
Сообщений: 41
08.01.2011, 11:55
Студворк — интернет-сервис помощи студентам
А вообще для мелких проектов подойдет Notepad++ и Mingw

Инструкция в New

Компиляция:
g++ -c ИМЯ_ФАЙЛА.cpp

g++ -o ИМЯ_ФАЙЛА ИМЯ_ФАЙЛА.o

ИМЯ_ФАЙЛА.exe

https://www.cyberforum.ru/atta... 1294476829
https://www.cyberforum.ru/atta... 1294476829
https://www.cyberforum.ru/atta... 1294476829
Вложения
Тип файла: rar Notepad2B2B-5.3-Final.rar (6.08 Мб, 19 просмотров)
Тип файла: rar mingw.rar (526.5 Кб, 13 просмотров)
Тип файла: rar New.rar (63.9 Кб, 12 просмотров)
1
21 / 21 / 0
Регистрация: 18.01.2010
Сообщений: 41
08.01.2011, 12:00
Цитата Сообщение от Hagrael Посмотреть сообщение
А чем же таким отличается empty проект? Можно ведь по идее просто создать проект win32, не ставить галочку на empty и поудалять все файлы (как я и делал), или что? В папке Generals пустого нет. Там есть "Custom Wizard", "Extended Stored Procedure Dll", "Makefile project".
Они отличаются настройками!
Посмотрите в настройках проекта.
1
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 13:44  [ТС]
robober, понятно, но всё же мне кажется, в Visual Studio лучше работать, хотя бы потому, что когда придётся делать солидные проекты, заново привыкать не нужно будет И ещё вопрос - зачем создавать в одном решении несколько? Что вообще представляет из себя решение? Сборник проектов? Если так, то каким образом оно компилируется? И так же интересно, как компилируется сам проект, ведь он может содержать несколько файлов .cpp, тогда что несколько .exe создадутся?

Добавлено через 12 минут
Egv, отличная статья! А можете ещё ссылки на подобные дать?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
08.01.2011, 13:52
Цитата Сообщение от Hagrael Посмотреть сообщение
Evg, там про кавычки и угловые скобки не написано
Раздел 10.1

Цитата Сообщение от Hagrael Посмотреть сообщение
Насколько я понял, в кавычках пишешь путь к файлу, созданному программистом, а к файлам из стандартной библиотеки путь пишется в угловых скобках, так?
Грубо говоря, дя

Цитата Сообщение от Hagrael Посмотреть сообщение
Но такой вопрос - почему <conio.h> пишется с .h, а <iostream> просто так?
Вот так посчитали разработчики Си++. Все файлы, которые входят в стандартную библиотеку Си++, имеют имена без .h. Есть ещё старый вариант (по более старым стандартам), где файлы пишутся с .h (например, <iostream.h>). Старый вариант отличается от нового тем, что в старом принудительно добавлено "using namespace std;".

Цитата Сообщение от Hagrael Посмотреть сообщение
И ещё такой вопрос - такой код правильный?
C++
1
2
3
#define MACROS1 1
#define MACROS2 MACROS1
int a=MACROS2
То есть заменяются ли в директивах макросы?
Вопрос не совсем понял, но после препроцессирования у тебя раскроется в "int a=1"

Добавлено через 4 минуты
Цитата Сообщение от Hagrael Посмотреть сообщение
А можете ещё ссылки на подобные дать?
Тут много чего: https://www.cyberforum.ru/faq/
В каждом разделе в самом начале списка тем есть прилепленные темы: перед ними написано слово "Важно".

По поводу gcc/mingw - https://www.cyberforum.ru/faq/thread61845.html
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 14:03  [ТС]
Evg, по C++ очень мало статей Да и вообще статей не так уж много.
Цитата Сообщение от Evg Посмотреть сообщение
Грубо говоря, дя
А почему грубо? Есть какие-то особые правила?
Цитата Сообщение от Evg Посмотреть сообщение
Вопрос не совсем понял, но после препроцессирования у тебя раскроется в "int a=1"
Вот у меня есть такой код:
C++
1
2
3
#define MACROS1 LALALA
#define MACROS2 MACROS1
int a=MACROS2
Да, в итоге a будет содержать LALALA, это понятно, а каким образом это работает - когда препроцессор видит MACROS1 во 2-й директиве, то он его заменяет или просто все макросы содержатся в памяти и если он видит присвоение новому макросу какого-либо значения, то он смотрит, есть ли макрос с названием, равным значению создаваемого макроса, в памяти, и если есть, то препроцессор подставляет значение этого макроса создаваемому?

И вот ещё вопрос - вот код (такой же):
C++
1
2
3
#define MACROS1 LALALA
#define MACROS2 MACROS1
int a=MACROS2
Но мне не надо, чтобы MACROS2 имел то же значение, что и MACROS1, а имел именно значение "MACROS1". Как такое реализовать? И как показать, что коментарии не действительны? Вот к примеру я захочу вместо "MACROS1" запихать туда значение "OLOLO /* OLOLO */", а "/* OLOLO */" препроцессор посчитает за коментарий. Как тут быть?
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
08.01.2011, 14:10
Hagrael, возможно, объявить MACROS2 до MACROS1? На счёт комментариев - ну так препроцессор тупо заменяет физически в коде все вхождения MACROS1 на "OLOLO /* OLOLO */", как если бы вы сами это написали. Так что никак тут не быть, в коде комментарии останутся, а если вы хотите, чтобы это интерпретировалось как строка - тогда и надо макрос создавать как строку, например так

C
1
2
3
#define STR "OLOLO \/* OLOLO *\/"
...
printf(STR);
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 14:14  [ТС]
silent_1991, понятно, спасибо. А что с присвоением MACROS2 значения "MACROS1" (не то, что содержит MACROS1, а строку "MACROS1", только без кавычек).
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
08.01.2011, 14:15
Hagrael,
Цитата Сообщение от silent_1991 Посмотреть сообщение
возможно, объявить MACROS2 до MACROS1?
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 14:21  [ТС]
silent_1991, допустим, что нет (хотелось бы знать все точности).
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
08.01.2011, 14:23
Цитата Сообщение от Hagrael Посмотреть сообщение
А почему грубо? Есть какие-то особые правила?
В разделе 10.1 всё же написано: каждый компилятор поступает по своему. Если и есть какие-то строгие стандарты, то я о них не знаю. Вот ты задаёшь много вопросов, значит любознательный. Твои вопросы говорят о том, что ты скорее практик, чем теоретик. Поставь себе несколько разных компиляторов и поэкспериментируй. Опыт экспериментов с разными компиляторами в любом случае пригодится

Цитата Сообщение от Hagrael Посмотреть сообщение
Evg, по C++ очень мало статей Да и вообще статей не так уж много
Если хочешь много - читай книжки и пользуйся гуглом. Эти статьи писались не за деньги, а потому за количеством никто не гнался

Цитата Сообщение от Hagrael Посмотреть сообщение
Да, в итоге a будет содержать LALALA
Такая постановка утверждения не правильная. Препроцессирование - это обычная текстовая подстановка (т.е. препроцессор не знает ни про какие переменные и ни про какаие языки программирования). Правильная постановка будет такая, что после препроцессирования текст программы превратится в "a=LALALA"

Цитата Сообщение от Hagrael Посмотреть сообщение
Но мне не надо, чтобы MACROS2 имел то же значение, что и MACROS1, а имел именно значение "MACROS1". Как такое реализовать?
Оно тебе и в правду надо или это просто вопрос? Потому как с ходу ответить не могу, могу только экспериментально потыкать (т.е. имеются предположения, но надо их проверить). А сейчас компиляторов под рукой нет

Цитата Сообщение от Hagrael Посмотреть сообщение
Вот к примеру я захочу вместо "MACROS1" запихать туда значение "OLOLO /* OLOLO */", а "/* OLOLO */" препроцессор посчитает за коментарий. Как тут быть?
Как я уже писал в статье, препроцессор пропускает комментарии. Теоретически, если на предыдущий вопрос имеется положительный ответ, то по этому вопросу метод будет аналогичным. Но ты можешь и сам поэкспериметировать - надо смотреть в сторону разделе 3.3.5 из статьи про препроцессорные директивы. И мне кажется, что когда ты сам опытным путём до чего-то сможешь докопаться, это будет куда полезнее, чем если кто-то ответит тебе на этот вопрос
0
08.01.2011, 14:29

Не по теме:

Evg,

Цитата Сообщение от Evg Посмотреть сообщение
когда ты сам опытным путём до чего-то сможешь докопаться, это будет куда полезнее, чем если кто-то ответит тебе на этот вопрос
Тем более, что труды Microsoft'овских разрабов наконец-то у ТСа начали работать правильно и компилировать код)))

0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 14:57  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
И мне кажется, что когда ты сам опытным путём до чего-то сможешь докопаться, это будет куда полезнее, чем если кто-то ответит тебе на этот вопрос
Этого я не отрицаю Дальше постараюсь копать самостоятельно, в крайнем случае спрошу здесь, всем спасибо, кто мне помогал А статей много я нашёл здесь. А по поводу коментариев это я сглупил.

Добавлено через 20 минут
А вот на это практически нигде кроме форума я ответа не найду. setlocale отказывается работать. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <locale.h>
#define BOILING_POINT_F 212
#define FREEZE_POINT_F 32
 
using namespace std;
 
int main() {
    setlocale(LC_CTYPE,"Russian");
    float f, c;
    cout << "0C = " << FREEZE_POINT_F << "F\n" << "100C = " << BOILING_POINT_F << "F\n\n" << "Введите температуру по Фаренгейту: ";
    cin >> f;
}
Пишет каракули, в чём дело?
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
08.01.2011, 15:09
Установи для окна шрифт Lucida Console
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 15:12  [ТС]
kazak, каким образом?
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
08.01.2011, 15:14
Правый клик по заголовку окна, пункт "Свойства", вкладка "Шрифт".
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 15:20  [ТС]
kazak, всё аналогично - каракули.
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
08.01.2011, 15:22
Попробуй такой вариант Русские шрифты в консоли
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 15:30  [ТС]
Везде ошибку выдаёт
0
web dev
 Аватар для TBIKC
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
08.01.2011, 15:30
Цитата Сообщение от Hagrael Посмотреть сообщение
Этого я не отрицаю Дальше постараюсь копать самостоятельно, в крайнем случае спрошу здесь, всем спасибо, кто мне помогал А статей много я нашёл здесь. А по поводу коментариев это я сглупил.

Добавлено через 20 минут
А вот на это практически нигде кроме форума я ответа не найду. setlocale отказывается работать. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <locale.h>
#define BOILING_POINT_F 212
#define FREEZE_POINT_F 32
 
using namespace std;
 
int main() {
    setlocale(LC_CTYPE,"Russian");
    float f, c;
    cout << "0C = " << FREEZE_POINT_F << "F\n" << "100C = " << BOILING_POINT_F << "F\n\n" << "Введите температуру по Фаренгейту: ";
    cin >> f;
}
Пишет каракули, в чём дело?
Ну во первых у тебя #include <windows.h> нету
А вообще делай так как выше написали)
C++
1
2
3
#include <windows.h>
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 15:38  [ТС]
Никак. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <windows.h>
#define BOILING_POINT_F 212
#define FREEZE_POINT_F 32
 
using namespace std;
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    setlocale(LC_CTYPE, "Russian");
    float f, c;
    cout << "0C = " << FREEZE_POINT_F << "F\n" << "100C = " << BOILING_POINT_F << "F\n\n" << "ВВПРЕ";
    cin >> f;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2011, 15:38

Чем отличается #include <cstring>, #include <string> и #include <string.h>?
Доброго времени суток :) Пишу свой класс и мне для нужны функции для работы со строками. Когда подключаю #include &lt;string&gt; все...

Warning: include(1) [function.include]: failed to open stream: No such file or directory in
Выдает вот такую ошибку Warning: include(1) : failed to open stream: No such file or directory in...

Warning: include(templates.php) [function.include]: failed to open stream: No such file or directory
Как исправить ошибку, этот текст выдает на главной странице

В чем суть директив #include <Windows.h> #include <stdlib.h>
/*хочу сделать простую графическую программу ранее работал с turbo 3.0 я так понимаю &lt;graphics.h&gt; это что-то вроде &lt;Windows.h&gt;...

Warning: include(Z:/home/localhost/www/layout/header.php) [function.include]: failed to open stream: No such f
Столкнулся с такой проблемой не инклудится файл include $g_site_root.'/layout/header.php';?&gt;,пишет нет такого файла или папки,но все есть и...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru