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

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

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

Author24 — интернет-сервис помощи студентам
Вот код моей первой программы на 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2011, 15:36
Ответы с готовыми решениями:

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

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

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

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

74
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.01.2011, 15:53 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;
}
1
38 / 38 / 17
Регистрация: 15.12.2010
Сообщений: 110
07.01.2011, 15:57 3
мой те совет выкинь студию подальше, если пишеш простенькие консольники то среде возьми по проше и по легче...там к примеру devc++ или codeblocks или еще че нить...

4. <iostream> и <conio.h>. Это стандартные файлы ведь?.... <conio.h> эт сишная, для _getch() у с++ есть cin.get(); для которой достаточно <iostream> подключить))
0
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.01.2011, 16:01 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);
И как там реализовывать цвет не понятно
(один из примеров)
1
21 / 21 / 0
Регистрация: 18.01.2010
Сообщений: 41
07.01.2011, 16:09 5
А студию выкидывать не надо, плохой совет!

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

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

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

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


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

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

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

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

Не по теме:

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



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

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

Добавлено через 56 минут
И ещё такой вопрос - такой код правильный?
C++
1
2
3
#define MACROS1 1
#define MACROS2 MACROS1
int a=MACROS2
То есть заменяются ли в директивах макросы?
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
08.01.2011, 09:28 20
Hagrael, имена файлов, которые пишутся в угловых скобках, ищутся по стандартным путям, о которых известно компилятору, а имена, записанные в кавычках, ищутся только в папке, в которой находится данный исходник. По сути, можно и имена самописных хидеров писать в угловых скобках, это может прокатить, но лучше придерживаться стандартов.
И чего вы так зациклились на этом расширении? И iostream и прочие плюсовые хидеры раньше имели расширение .h, потом, после выхода стандарта его убрали, ввели пространства имён и т.д. А все сишные хидеры (включая conio) - это древние файлы, да к тому же предназначенные для си-программ, потому в них и оставили расширения.
На счёт кода, а почему бы не проверить самостоятельно, зачем спрашивать на форуме, чему равно дважды два, не удосужившись запустить калькулятор?
0
08.01.2011, 09:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2011, 09:28
Помогаю со студенческими работами здесь

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...

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;...

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;,пишет...

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

Мелочи...
Всем привет. Можете пжл рассказать зачем, для чего и что делают: 1. resourcestring Пример:...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru