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

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

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

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

07.01.2011, 15:36. Просмотров 4117. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 15:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос include и некоторые мелочи (C++):

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

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

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

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

ошибка в лабе не находит #include<iomanip.h> #include<conio.h> - C++
Само задание: Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до A минут в месяц-C руб. а разговоры сверх...

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

74
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
08.01.2011, 10:59 #31
Сейчас выложу инструкцию!
0
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
08.01.2011, 11:04 #32
Вот инсрукция!

http://www.cyberforum.ru/attachment....1&d=1294473753
0
Вложения
Тип файла: rar Hello World.rar (101.8 Кб, 15 просмотров)
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 11:08  [ТС] #33
robober, ОК, жду
silent_1991, не работает значит не компилируется. В поле output выводится ошибка:
Empty fatal error LNK1201: error writing to program database 'C:\Documents and Settings\Admin\Мои документы\Visual Studio Projects\Empty\Debug\Empty.pdb'; check for insufficient disk space, invalid path, or insufficient privilege
Вот код:
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
using namespace std;
 
int main() {
    cin.get();
    return 0;
}
Первый раз нажал F5 (Debug -> Start), работает, но на нажатия клавиш не обращает внимания, второй раз нажал F5, аналогично, третий - не работает %)
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.01.2011, 11:12 #34
Hagrael, ну-ка позакрывайте-ка всё, что сейчас открыто, заново запустите студию и пересоберите проект.
0
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 11:26  [ТС] #35
silent_1991, ОК.
robober, щас попробую вашим способом.

Добавлено через 4 минуты
ДА!!! Сработало! Премного благодарен, robober!
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.01.2011, 11:26 #36
Hagrael, разве я не то же самое советовал?
0
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 11:30  [ТС] #37
silent_1991, вы сказали создавать пустой проект, я подумал, что надо тип проекта выбрать .NET Empty, а оказывается флаг надо было включить
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.01.2011, 11:32 #38
Hagrael, я же сказал Общие -> Пустой проект. В общих никаких дотнетов и в помине нет. Это более короткий аналог того, что посоветовал robober (создать консольный проект и поставить галку "Пустой")
0
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 11:39  [ТС] #39
А чем же таким отличается empty проект? Можно ведь по идее просто создать проект win32, не ставить галочку на empty и поудалять все файлы (как я и делал), или что? В папке Generals пустого нет. Там есть "Custom Wizard", "Extended Stored Procedure Dll", "Makefile project".
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.01.2011, 11:41 #40
Hagrael, да просто там не будет абсолютно ничего лишнего (повторюсь - для простеньких тестовых и учебных программок), что может вызвать проблемы, подобные вашим. Не знаю, что у вас там такое хитрое было, но пустой проект эту проблему решил.
1
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
08.01.2011, 11:55 #41
А вообще для мелких проектов подойдет Notepad++ и Mingw

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

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

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

ИМЯ_ФАЙЛА.exe

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

Добавлено через 12 минут
Egv, отличная статья! А можете ещё ссылки на подобные дать?
0
Evg
Эксперт CАвтор FAQ
17955 / 6186 / 415
Регистрация: 30.03.2009
Сообщений: 16,979
Записей в блоге: 27
08.01.2011, 13:52 #44
Цитата Сообщение от 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 Посмотреть сообщение
А можете ещё ссылки на подобные дать?
Тут много чего: http://www.cyberforum.ru/faq/
В каждом разделе в самом начале списка тем есть прилепленные темы: перед ними написано слово "Важно".

По поводу gcc/mingw - http://www.cyberforum.ru/faq/thread61845.html
0
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
08.01.2011, 14:03  [ТС] #45
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2011, 14:03
Привет! Вот еще темы с ответами:

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

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

Какая разница между #include<> и #include""? - C++
Позволите спросить несколько вопросов: 1)Какая разница между #include&lt;&gt; и #include&quot;&quot; 2)Если нужно значение объекта и я не собираюсь его...

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


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

Или воспользуйтесь поиском по форуму:
45
Yandex
Объявления
08.01.2011, 14:03
Ответ Создать тему
Опции темы

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