// Эта программа отображает текущее системное время.
#include
#include
using namespace std;
int main()
{
struct tm *ptr;
time_t lt;
lt = time('\0');
ptr = localtime(<);
cout << ptr->tm_hour << ':' << ptr->tm_min;
cout << ':' << ptr->tm_sec;
return 0;
}
Вот один из возможных результатов выполнения этой программы:
14:52:30
Несмотря на то что ваши программы могут использовать поэлементную форму представления времени и даты (как показано в предыдущем примере), проще всего сгенерировать строку времени и даты с помощью функции
char *asctime(const struct tm *ptr);
Функция
день месяц число часы:минуты:секунды год\n\0
Указатель на структуру, передаваемый функции
Область памяти, используемая функцией
В следующей программе демонстрируется использование функции
// Эта программа отображает текущее системное время.
#include
#include
using namespace std;
int main()
{
struct tm *ptr;
time_t lt;
lt = time('\0');
ptr = localtime(<);
cout << asctime(ptr);
return 0;
}
Вот один из возможных результатов выполнения этой программы.
Wed Jul 28 15:05:51 2004
В языке C++ предусмотрены и другие функции даты и времени, с которыми можно познакомиться, обратившись к документации, прилагаемой к вашему компилятору.
Для доступа к структуре можно использовать ссылку. Ссылка на структуру часто используется в качестве параметра функции или значения, возвращаемого функцией. При получении доступа к членам структуры с помощью ссылки используйте оператор
В следующей программе показано, как можно использовать структуру при передаче функции параметров по ссылке.
// Демонстрируем использование ссылки на структуру.
#include
using namespace std;
struct mystruct {
int a; int b;
};
mystruct &f(mystruct &var);
int main()
{
mystruct x, y;
x.a = 10; x.b = 20;
cout << "Исходные значения полей x.a and x.b: ";
cout << x.a << ' ' << x.b << '\n';
y = f (x);
cout << "Модифицированные значения полей x.a и x.b: ";
cout << x.a << ' ' << x.b << '\n';
cout << "Модифицированные значения полей y.a и y.b: ";
cout << y.a << ' ' << y.b << '\n';
return 0;
}
// Функция, которая получает и возвращает ссылку на структуру.
mystruct &f(mystruct &var)
{
var.a = var.a * var.a;
var.b = var.b / var.b;
return var;
}
Вот результаты выполнения этой программы.
Исходные значения полей x.a and x.b: 10 20
Модифицированные значения полей х.а и x.b: 100 1
Модифицированные значения полей у.а и y.b: 100 1
Ввиду существенных затрат системных ресурсов на передачу структуры функции (или при возвращении ее функцией) многие С++-программисты для выполнения таких задач используют ссылки на структуры.
Член структуры может иметь любой допустимый тип данных, в том числе и такие составные типы, как массивы и другие структуры. Поскольку эта тема нередко вызывает у программистов затруднения, имеет смысл остановиться на ней подробнее.
Массив, используемый в качестве члена структуры, обрабатывается вполне ожидаемым способом. Рассмотрим такую структуру.
struct stype {