Для удобной работы необходимо добавлять файлы к уже открытому проекту. Меню File->New->File.
Для примера добавим новый заголовочный файл. Для этого выбираем C/C++ header.
Нажимаем Go.
Указываем размещение файла и его имя. Обратите внимание, что он расположен в папке проекта. Устанавливаем галочку на Add file to active project. И ставим галочки напротив Debug и Release. Это означает, что данный файл мы хотели бы добавить и в отладочную и в результирующую версию программы. Нажимаем Finish.
После этого мы снова попадем в среду разработки, но а панели управления проектом появится папка Headers, в которой будет находится новый заголовочный файл. В области кода этот файл будет автоматически открыт для редактирования.
В заголовочный файл автоматически были добавлены следующие строки:
#ifndef MY_MOD1_H_INCLUDED
#define MY_MOD1_H_INCLUDED
#endif // MY_MOD1_H_INCLUDED
Директивы #ifndef, #define, #endif используются для того, чтобы избежать повторного включения одного и того же кода. Таким образом, вне зависимости от того, сколько раз будет подключен данный заголовочный файл, он будет скомпилирован только один раз.
|
|
Вместо данной конструкции может быть использована #pragma once - нестандартная, но широко распространенная препроцессорная директива.
Код модуля должен начинаться после строки #define и заканчиваться до строки # endif.
V. Особенности написания кода (в отличие от BorlandC):
- Функция main() должна возвращать значение. Поэтому минимальный проект должен иметь следующую одну из эквивалентных форм:
int main() { return 0; } | main() { return 0; } |
- Заголовочные файлы. При написании программ следует помнить о том, что заголовочные файлы для C имеют формат «имя.h»,а для C++ принято добавлять «с» в начале и не использовать расширение «.h». Например, функция printf() находится и в файле «stdio.h» и в «cstdio».
- Пространство имен. В отличие от Borland C, в codeBlocks реализована нормальная работа с пространствами имен. На начальном уровне чаще всего будет использовано пространство имен std (пространство имен - это механизм С++, предназначенный для предотвращения проблем, связанных с дублированием имен, применяемых в программе для разных целей).
- Примеры операций:
4.1. Очистка экрана(консоли)
system(“cls”); // заголовочные файлы: stdlib.h или cstdlib
справка:
int system(char *string);
Функция system() обеспечивает передачу строки string командному процессору DOS, как если бы эта строка была набрана за терминалом. Текущая программа ожидает конца исполнения команды, а затем возобновляет работу.
4.2. Ожидание нажатия клавиши
Вариант 1:
system(“pause”); // заголовочные файлы: stdlib.h или cstdlib
Вариант 2:
std::cin.sync(); // заголовочный файл: iostream
std::cin.get(); // заголовочный файл: iostream
|
|
примечание:
Вторая функция читает из входного потока любой символ (в том числе и Enter). Первая функция предназначена для очистки входного потока от всех символов (например, там может остаться код клавиши Enter от предшествующего ввода).
4.3. Потоковый ввод вывод. cin, cout, endl и некоторые другие функции по работе с потоковым вводом/выводом находятся в пространстве имен std. Для исключения возможных проблем с дублированием имен, не рекомендуется подключать все пространство имен:
using namespace std;
Более правильно будет подключить только те функции, которые вы намерены использовать в процессе написания программы:
using std::cin;
using std::cout;
using std::endl;
Вызов этих функций в программе будет одинаков для обоих вариантов подключения пространства имен, например:
cout<<”Test”<<endl;
4.4. Инициализация счетчика случайных чисел.
srand(time(NULL)); // заголовочные файлы: time.h и stdlib.h или ctime и cstdlib
Генерация случайного числа:
int a = rand();
примечание:
Функция rand() возвращает случайное число в диапазоне от 0 до 32767.
С помощью операции деления по модулю % результат может быть отображен в заданном диапазоне, например:
//целые числа в диапазоне [0; 9]
int a = rand() % 10;
Применение других арифметических операций позволит получить требуемый результат, например:
// вещественные числа в диапазоне от 0 до 9.9 с шагом 0.1
int a = (rand() % 100) / 10;
// целые числа в диапазоне от -3 до 5
int a = (rand() % 9) - 3; // диапазон [0; 8] сдвигается на 3 влево
4.5. Работа с датой и временем
Структура tm содержит компоненты календарного времени.
Имя | Описание |
int tm_sec; | Секунды от начала минуты(0,59) |
int tm_min; | Минуты от начала часа(0,59) |
int tm_hour; | Часы от полуночи(0,23) |
int tm_mday; | Число месяца(1,31) |
int tm_mon; | Месяцы после января(0,11) |
int tm_year; | Годы с 1900 |
int tm_wday; | Дни с воскресенья(0,6) |
int tm_yday; | Дни с первого января(0,365) |
int tm_isdst; | Признак летнего времени (значение 1 обозначает, что летнее время есть) |