Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
1

#include как и когда?

07.11.2014, 02:25. Просмотров 1245. Ответов 35
Метки нет (Все метки)

Простите великодушно за тупой вопрос, ответ на который я не нашел даже в книге "для чайников."
В начале программы стоят операторы #include, которые, как я понял, подключают библиотеки в которых расписаны функции которые я буду использовать в программе.
Скажите, как определить какие библиотеки мне обязательно нужно подключить? Может есть где-то список операторов и соответствующий им список библиотек, которые нужны для того что бы этот оператор работал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2014, 02:25
Ответы с готовыми решениями:

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

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

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

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

Какая разница между #include<> и #include""?
Позволите спросить несколько вопросов: 1)Какая разница между #include&lt;&gt; и...

35
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
07.11.2014, 02:39 2
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Скажите, как определить какие библиотеки мне обязательно нужно подключить? Может есть где-то список операторов и соответствующий им список библиотек, которые нужны для того что бы этот оператор работал?
Базовые операторы (арифметика с int/double/float/char, ->, * перед указателем) работают без библиотек. А какая функция в какой библиотеке можно посмотреть, скажем, на www.cplusplus.com.
1
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
07.11.2014, 02:47  [ТС] 3
Спасибо. Буду искать на сайте www.cplusplus.com.
0
raister32
5 / 5 / 6
Регистрация: 16.12.2013
Сообщений: 67
07.11.2014, 21:49 4
В основном подключают библиотеки #include iostream - in out stream (ввод вывод потока), #include <math.h> для решения каких то математических задач, #include conio.h чтобы пользоваться getch(). Вот эти библиотеки чаще всего используются для работы в учебных целях. В процессе развития уже будешь знать и пользовать те библиотеки которые тебе нужны. Их очень много, есть подключаемые библиотеки, типо графической SFML. А разобраться для чего нужны остальные всегда может помочь интернет)
0
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
08.11.2014, 00:08  [ТС] 5
Ну а пока человек не привык, после написания первых программ он составляет список всех операторов которые использовал в программе и ищет не нужна ли к данному оператору какая-то библиотека? Или может какая-то IDE сама подсказывает какие библиотеки надо подключить что бы программа скомпилировалась? И почему они вообще не автоматически подключаются, все которые требуются для программы. Допустим компилятор обнаружил что требуется какая-то библиотека и тут же взял ее сам.
0
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
08.11.2014, 01:09  [ТС] 6
#include как и когда?

Вот пытаюсь создать первую консольную программу. Делаю все как говорят в ролике

на третьей минуте. Только у него почему-то компилируется, а у меня ошибка.
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
08.11.2014, 01:19 7
Цитата Сообщение от raister32 Посмотреть сообщение
#include <math.h>
Цитата Сообщение от raister32 Посмотреть сообщение
#include conio.h чтобы пользоваться getch()
Два неудачных примера.
1) Использование сишных заголовков в то время, как существуют заголовки для C++ (math.h -> cmath, stdio.h -> cstdio и т.п)
2) Использование заголовков не входящих в стандартную библиотеку типа conio.h. Вместо getch() или _getch() вполне можно использовать srd::cin.get().
0
behollder
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
08.11.2014, 01:39 8
Цитата Сообщение от Viktor2004 Посмотреть сообщение
И почему они вообще не автоматически подключаются, все которые требуются для программы.
Я тоже считаю, что нужно компилировать пустые файлы, а компилятор должен угадать что я хотел, сам написать код и написать правильно.
Советую учиться по книгам, а не по роликам, и не по книгам типа "для чайник".
0
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
08.11.2014, 01:45 9
Цитата Сообщение от Viktor2004 Посмотреть сообщение
И почему они вообще не автоматически подключаются, все которые требуются для программы. Допустим компилятор обнаружил что требуется какая-то библиотека и тут же взял ее сам.
Видимо, идеология и исторические причины.
1) Имена используемые стандартной библиотекой не являются зарезервированными. То есть, имею полное право объявить свои собственные cin и cout. В таком случае автоматическое подключение стандартной библиотеки чревато конфликтами между моим cin и стандартным. Не актуально с тех пор, как стандартная библиотека уехала в std::.
2) Стандартные сишные define. Неожиданно превращающие код типа min=max-10 в черт знает что (min и max пытаются раскрыться в уравнение для вычисления минимума/максимума). Такие бомбы замедленного действия лучше подключать вручную. Впрочем, тоже не особо актуально с тех пор как min и max пересобрали на шаблонах.
3) Тупо компилятору больше работы - разбирать крупные инклуды. Но эта работа теперь вроде как кешируется, так что тоже не актуально.
Цитата Сообщение от Viktor2004 Посмотреть сообщение
на третьей минуте. Только у него почему-то компилируется, а у меня ошибка.
Потому то пример времен царя Гороха и к тому же платформозависимый (на пингвинах "pause" даст непредсказуемый результат). Нужен using namespace std после инклудов или префикс std:: перед каждым именем из стандартной библиотеки.
0
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
08.11.2014, 02:03  [ТС] 10
Цитата Сообщение от greenlight Посмотреть сообщение
Советую учиться по книгам, а не по роликам, и не по книгам типа "для чайник".
Да я понимаю. Просто начинать-то надо всегда с простых приемов "делай раз, делай два, делай три. Должно получиться четыре". Потом уже переходить к специализированным книгам. Вначале хочу научиться держать в руке карандаш.

Добавлено через 17 минут
Цитата Сообщение от Renji Посмотреть сообщение
Потому то пример времен царя Гороха и к тому же платформозависимый (на пингвинах "pause" даст непредсказуемый результат). Нужен using namespace std после инклудов или префикс std:: перед каждым именем из стандартной библиотеки.
Я понял что с самым простым примером у меня ничего не получится.
Блин, четверть века назад легко преобразовывал нужные мне данные на Синклере. Там были две замечательные команды PEEK и POKE позволяющие делать с данными в памяти что угодно. И без всяких инклудов.
Я ведь за C++ взялся только с одной целью, получить инструмент для преобразования файлов. что бы решать вопросы как в той теме.
Подскажите метод шифрования
0
behollder
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
08.11.2014, 02:06 11
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Вначале хочу научиться держать в руке карандаш.
Заранее прошу прощение за такой пример: "научиться держать карандаш может и обезьяна". Это к чему, к тому что нужно учиться правильно + в книге намного больше вопросов затрагивается. Вот вам в помощь Литература C++
0
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
08.11.2014, 02:14 12
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Я понял что с самым простым примером у меня ничего не получится.
Так получится и гарантированно кросплатформенно:
C++
1
2
3
4
5
6
7
#include<iostream>
using namespace std;
int main()
{
    int x;
    cin>>x;
}
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Я ведь за C++ взялся только с одной целью, получить инструмент для преобразования файлов. что бы решать вопросы как в той теме.
Никакие плюсы не дадут вам вишмастера позволяющего читать зашифрованные файлы не зная ни метода шифрования, ни пароля.
0
behollder
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
08.11.2014, 02:15 13
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Я ведь за C++ взялся только с одной целью, получить инструмент для преобразования файлов. что бы решать вопросы как в той теме.
В этом случае, я думаю, нужно просто обратиться к компетентным людям, которые сделают работу за деньги.
0
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
08.11.2014, 02:22  [ТС] 14
Цитата Сообщение от greenlight Посмотреть сообщение
Вот вам в помощь Литература C++
Спасибо. Вы мне очень помогли.

Добавлено через 5 минут
Цитата Сообщение от Renji Посмотреть сообщение
Код C++

#include<iostream>
using namespace std;
int main()
{
int x;
cin>>x;
}
Теперь две ошибки выдал
[Linker Error] Error: Unresolved external '__InitVCL' referenced from E:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Error: Unresolved external '__ExitVCL' referenced from E:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MTI.LIB|crtlvcl
0
behollder
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
08.11.2014, 02:28 15
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Теперь две ошибки выдал
возможно это поможет linker eror
я лично не знаком с этим инструментом
0
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
08.11.2014, 02:29 16
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Теперь две ошибки выдал
Тогда дописать int main(int argc, char* argv[]). Но вообще, как я понимаю, это личные тараканы Борланда.
0
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
08.11.2014, 02:32  [ТС] 17
Цитата Сообщение от Renji Посмотреть сообщение
Никакие плюсы не дадут вам вишмастера позволяющего читать зашифрованные файлы не зная ни метода шифрования, ни пароля.
С тем что я собираюсь с файлом делать у меня ясность полная. А вот как это сделать этому я и хочу научиться.
Открывать файл, делать математические преобразования с данными последовательно, записывать в другой файл.

Добавлено через 1 минуту
Цитата Сообщение от Renji Посмотреть сообщение
Но вообще, как я понимаю, это личные тараканы Борланда.
А какой лучше посоветуете? visual? их тоже много различных.
0
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
08.11.2014, 02:40 18
Цитата Сообщение от Viktor2004 Посмотреть сообщение
Открывать файл, делать математические преобразования с данными последовательно, записывать в другой файл.
Если последовательно, то откройте файл как поток.
C++
1
2
3
4
5
6
7
8
9
10
11
#include<fstream>
using namespace std;
int main(int argc, char* argv[])
{
    ifstream stream("text.txt");
    while(!stream.eof())
    {
        char c=stream.get();
        cout<<c;
    }
}
Цитата Сообщение от Viktor2004 Посмотреть сообщение
А какой лучше посоветуете? visual? их тоже много различных.
Ну, Qt Creator, например. Под Пингвинами, в комплекте с g++, точно проблем не создает.
0
Kuzia domovenok
2358 / 2092 / 494
Регистрация: 25.03.2012
Сообщений: 7,491
Записей в блоге: 1
08.11.2014, 02:48 19
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Использование заголовков не входящих в стандартную библиотеку типа conio.h
ничего что это абсолютно стандартный ANSI C?

Добавлено через 1 минуту
Цитата Сообщение от Renji Посмотреть сообщение
Ну, Qt Creator, например. Под Пингвинами, в комплекте с g++, точно проблем не создает.
какие ещё пингвины? Дай человеку сперва программирование освоить! Я советую Visual Studio любую (кроме слишком уж древних)
0
Viktor2004
3 / 3 / 0
Регистрация: 01.04.2009
Сообщений: 220
08.11.2014, 02:55  [ТС] 20
Цитата Сообщение от Renji Посмотреть сообщение
Если последовательно, то откройте файл как поток.
Спасибо. Я ведь не хочу что бы кто-то за меня делал мою работу. Хочу сначала выбрать инструмент который посоветуют специалисты, опробовать что этот инструмент хоть как-то мне подчиняется, а потом уже читать книжки, где описаны операторы, методы работы с ними, форматы.

Добавлено через 1 минуту
Цитата Сообщение от Renji Посмотреть сообщение
Ну, Qt Creator, например. Под Пингвинами, в комплекте с g++, точно проблем не создает.
Простите за некомпетентность, а кто такие пингвины? Линукс? У меня XP 32b
0
08.11.2014, 02:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2014, 02:55

Как в #include включить файл
Есть главная папка проекта в ней находиться заголовочный файл .h и в этой...

Как происходит адресация #include?
Допустим есть 4 файла: Файл sum.cpp который хранится к примеру в папке...

Рекурсивный include, как грамотней сделать?
Привет! Что - то я совсем онубел :D Есть два класса, вот их хэдэры: ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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