Потоковий ввід-вивід

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 3 з дисципліни: “Об’єктно-орієнтоване програмування” на тему: “Потоковий ввід-вивід” Мета лабораторної роботи Навчитись користуватися засобами стандартного вводу-виводу С++. Теоретичні відомості Файловий ввід-вивід Для виконання операцій з файлами передбачено три класи: іfstream, ofstream і fstream. Ці класи є похідними від класів іstream, ostream і іostream. Всі функціональні можливості (перевантажені операції << та >> для вбудованих типів, функції і прапорці форматування, маніпулятори й ін.), що застосовуються до стандартного вводу та виводу, можуть застосовуватися і до файлів. Існує деяка відмінність між використанням стандартних та файлових потоків. Стандартні потоки можуть використовуватися відразу після запуску програми, тоді як файловий потік спочатку слід зв'язати з файлом. Для реалізації файлового вводу-виводу потрібно підключити заголовочний файл fstream.h. Відкрити файл для вводу чи виводу можна наступним чином: // Для виводу ofstream outfile; outfile.open("File.txt"); або ofstream outfile("File.txt"); або fstream outfile("File.txt ",ios::out); // Для вводу ifstream infile; infile.open("File.txt"); або ifstream infile("File.txt"); або fstream infile("File.txt ",ios::in);  Режими відкриття файлів та їхнє призначення. Режим відкриття Призначення  іos::іn Відкрити файл для читання  іos::out Відкрити файл для запису  іos::ate Відкрити файл для додавання в кінець  іos::app Відкрити файл для додавання в кінець  іos::trunc Усікти файл, тобто видалити його вміст  іos::bіnary Відкрити файл у двійковому режимі  Режими відкриття файлу являють собою бітові маски, тому можна задавати два або більш режими, поєднуючи їх побітовою операцією АБО. Слід звернути увагу, що по замовчуванню режим відкриття файлу відповідає типові файлового потоку. У потоці вводу або виводу прапорець режиму завжди встановлений неявно. Між режимами відкриття файлу іos::ate та іos::app існує певна відмінність. Якщо файл відкривається в режимі додавання, весь вивід у файл буде здійснюватися в позицію, що починається з поточного кінця файлу, безвідносно до операцій позиціонування у файлі. У режимі відкриття іos::ate (від англійського "at end") можна змінити позицію виводу у файл і здійснювати запис, починаючи з неї. Файли, які відкриваються для виводу, створюються, якщо вони ще не існують. Якщо при відкритті файлу не зазначений режим іos::bіnary, файл відкривається в текстовому режимі. Якщо відкриття файлу завершилося невдачею, об'єкт, що відповідає потокові, буде повертати нуль. Перевірити успішність відкриття файлу можна також за допомогою функції-члена іs_open(). Дана функція повертає 1, якщо потік вдалося зв'язати з відкритим файлом. Для перевірки, чи досягнутий кінець файлу, можна використовувати функцію eof(). Завершивши операції вводу-виводу, необхідно закрити файл, викликавши функцію-член close(). Індивідуальне завдання Написати програму, яка буде додавати у текстовий файл введену з клавіатури інформацію (згідно варіанту). Слід передбачити можливість вибору користувачем режиму роботи: додавання чи відображення даних. Забезпечити зберігання даних у файлі у вигляді структурованої таблиці, для цього слід використовувати засоби форматування. 4. З клавіатури вводиться ім’я та день народження (день та місяць). Код програми #include <iostream> #include <fstream> using namespace std; int main() { setlocale(LC_CTYPE, "Ukrainian"); for (;;) { unsigned int n; cout << "1 - Ввести iм'я i день народження" << endl << "2 - Прочитати файл" << endl << "3 - Очистити файл" << endl << "0 - Вихiд з програми" << endl << "Ваш вибiр: "; cin >> n; if (n == 1) // Ввести iм'я i день народження { char Name[16]; unsigned int Day, Month; cout << "Введiть iм'я:" << endl; cin >> Name; cout << "Введiть день мiсяця:" << endl; cin >> Day; cout << "Введiть номер мiсяця:" << endl; cin >> Month; fstream TextFile("Text.txt", ios::app); if (!TextFile) { cout << "Помилка вiдкриття файлу" << endl << endl; system("pause"); return -1; } TextFile.width(16); TextFile.setf(ios::left); if (Day < 10) TextFile << Name << "0" << Day; else TextFile << Name << Day; if (Month < 10) TextFile << ".0" << Month << endl; else TextFile << "." << Month << endl; TextFile.close(); cout << endl; system("pause"); } else if (n == 2) // Прочитати файл { fstream TextFile("Text.txt", ios::in); if (!TextFile) { cout << "Помилка вiдкриття файлу" << endl << endl; system("pause"); return -1; } char str[16]; TextFile >> str; if (TextFile.eof()) cout << "Файл порожнiй" << endl << endl; else TextFile.seekg(0, ios::beg); while (!TextFile.eof()) { cout.width(16); cout.setf(ios::left); TextFile >> str; cout << str; TextFile >> str; cout << str << endl; } system("pause"); TextFile.close(); } else if (n == 3) // Очистити файл { fstream TextFile("Text.txt", ios::out); if (!TextFile) { cout << "Помилка вiдкриття файлу" << endl << endl; system("pause"); return -1; } TextFile.close(); cout << "Файл очищено" << endl << endl; system("pause"); } else if (n == 0) // Вихiд з програми return 0; system("cls"); } } Результат виконання програми / / / Висновок Я навчився користуватися засобами стандартного вводу-виводу С++ та написав програму, яка працює з текстовим файлом.
Антиботан аватар за замовчуванням

27.03.2016 18:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!