Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции с файлами




Лекция 7

Указатели

Когда компилятор обрабатывает оператор определения переменной, например, int i=10; он выделяет память в соответствии с типом (int) и инициализирует ее указанным значением (10). Все обращения в программе к переменной по ее имени (i) заменяются компилятором на адрес области памяти, в которой хранится значение переменной. Программист может определить собственные переменные для хранения адресов областей памяти. Такие переменные называются указателями. Итак, указатели предназначены для хранения адресов областей памяти.

У казатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Простейшее объявление указателя на объект (в дальнейшем называемого просто указателем) имеет вид: тип_данных *имя_указателя;. Указатели применимы только к целым числам и массивам.

Существуют две операции для работы с указателями. Во-первых, это определение адреса ячейки по имени переменной, для этого используется оператор &. Во-вторых, это определение значения переменной записанного по данному адресу, для этого используется оператор *.


Пример целочисленной переменной:

#include <iostream>

#include <windows.h>

using namespace std;

string Rus(string text) //установка вывода русского языка в строке

{CharToOem((LPCTSTR)text.c_str(), (LPSTR)text.c_str()); return text;}

int main()

{

int a=100, b=0;

int *pa, *pb;

pa=&a; //указатель на адрес, где хранится a

cout<<Rus("Переменная а=")<<a<<Rus(" находится в ячейке ")<<pa<<endl;

cout<<Rus("В ячейке с номером ")<<pa<<Rus(" хранится переменная ")<<*pa<<endl;

cout<<Rus("Номер следующей ячейки ")<<pa+1<<endl;

cout<<endl;

*pa=*pa+10;

cout<<Rus("Переменная а стала равна ")<<*pa<<endl; //эквивалентно a=a+10

b=a; pb=&b;

cout<<Rus("Переменная b стала равна ")<<*pb<<endl;

return 0;

}

Пример одномерного массива:

#include <iostream>

#include <windows.h>

using namespace std;

string Rus(string text) //установка вывода русского языка в строке

{CharToOem((LPCTSTR)text.c_str(), (LPSTR)text.c_str()); return text;}

int main()

{

int a[5] = {3, 2, 1};

int *pa; pa=&a[0];

for (int i=0; i<=4; i++)

{

pa=&a[i];

cout<<Rus("Переменная ")<<*pa<<Rus(" хранится по адресу ")<<pa<<endl;

}

return 0;

}

Задание 1. Выполнить лабораторную работу 6 (Функции).

Задание 2. Выполнить лабораторную работу 6а (Массивы).


 

Большие объемы данных хранятся на диске в виде файлов. Существуют два основных типа файлов: текстовые и двоичные.

Т екстовыми называются файлы, состоящие из любых символов. Они организуются по строкам, каждая из которых заканчивается символом «конца строки». Конец самого файла обозначается символом «конца файла». Чтение тестового файла можно просмотреть с помощью любого текстового редактора.

В двоичных файлах информация считывается и записывается в виде блоков определенного размера, в которых могут храниться данные любого вида и структуры.

В программах на C++ при работе с текстовыми файлами необходимо подключить библиотеку fstream.

При работе с файлами используются специальные типы данных, называемые потоками. Переменная для записи символов в файл имеет вид с ofstream <переменная_потока>, а переменная для чтения символов из файла имеет вид с ifstream <переменная_потока>.

Ф айл может быть открыт в одном из следующих режимов:

· ios::in — открыть файл в режиме чтения данных;

· ios::out — открыть новый файл в режиме записи данных (при этом информация о существующем файле уничтожается);

· ios::app — открыть файл в режиме записи данных в конец файла;

· ios::ate — передвинуться в конец уже открытого файла;

· ios::trunc — очистить файл, это же происходит в режиме ios::out;

· ios::nocreate — не выполнять операцию открытия файла, если он не существует;

· ios::noreplace — не открывать существующий файл.

 




Поделиться с друзьями:


Дата добавления: 2014-11-25; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.