Практ №4 Ввод-вывод. Разработка программ вводавывода данных
Скачать 121.88 Kb.
|
if(!tofile) //проверка открытия файла cout<<”Error of file opening”; else { tofile<<”Attention!\n”; tofile<<100< tofile.close(); } //открытие файла для ввода ifstream fromfile; //создание потока ввода fromfile.open(“first”); //открытие файла if(!fromfile) //проверка открытия cout<<”Error of file opening”; else { char str[20]; // объявление переменных для ввода int num; // данных из файла fromfile>>str>>n; cout< fromfile.close(); } return 0; } После завершения работы программы содержимое файла first будет следующим: Attention! 100 Ввод-вывод символьных строк в файлы При вводе-выводе строк в файлы применяются общие правила работы с файлами. Рассмотрим пример вывода в файл двух символьных строк. #include<iostream> #include using namespace std; int main() { ofstream tofile; char*ps="This is a first string."; tofile.open("text1.txt"); if(!tofile) //проверка открытия файла { cout<<"Cannot open file.\n"; return 1; } tofile < tofile.close(); return 0; } Первая строка вводится через указатель на символьный массив, вторая – как строковая константа. Особенность программы по сравнению с ранее рассматриваемыми состоит в том, что если файл не откроется, то работа программы завершается (return 1). Результат работы программы: Теперь попытаемся прочитать эту текстовую информацию из файла с помощью следующей программы. #include #include using namespace std; int main() { char str1[50]; char str2[50]; ifstream fromfile; //создание потока ввода fromfile.open("text1.txt"); //открытие файла if(!fromfile) //проверка открытия {cout<<"Cannot open file.\n"; return 1; } fromfile >>str1; fromfile >>str2; cout< cout< fromfile.close(); return 0; } После выполнения программы на экран будет выведено: Текст из файла не был прочитан полностью, т.к. считывание в поток производится до первого разделительного символа. Поэтому прочитались первые два слова. Изменим программу, в которой будем использовать функцию getline(). Эта функция считывает то количество символов, которое ей укажешь. #include<iostream> #include using namespace std; int main() { char str1[50]; char str2[50]; ifstream fromfile; //создание потока ввода fromfile.open("text1.txt"); //открытие файла if(!fromfile) //проверка открытия {cout<<"Cannot open file.\n"; return 1; } fromfile.getline(str1,50); fromfile.getline(str2,50); cout< cout< fromfile.close(); return 0; } Теперь вся текстовая информация, записанная в файле, будет выведена на экран. Практикум Задание 1. Используя манипуляторы ввода-вывода в цикле записать в файл one.txt матрицу согласно индивидуальному варианту (Приложение А). Задание 2. Согласно индивидуальному заданию разработать программу преобразования исходной строки (Приложение Б), используя только библиотечные функции (обращение к элементам символьного массива по индексу запрещено), и записать её в файл one.txt. Задание 3. Разработать меню пользователя со следующими функциями: прочитать из файла заданную строку матрицы или матрицу целиком; прочитать из файла преобразованную символьную строку или любое слово из строки; выйти из программы. Отчет оформляется по общеустановленным правилам в электронном виде со следующим содержанием: титульный лист, тема и цель практического занятия, задание на практическое занятие, текст программы с комментариями, результаты работы программы (вид экрана) и выводы по созданному проекту и использованию средств языка программирования. Приложение А
|