ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Лабораторная работа №8. Хранение данных на внешних носителяхХранение данных на внешних носителях С помощью классов Заголовочный файл iostream.h определяет выходной поток cout. Аналогично, заголовочный файл f stream.h определяет класс выходного файлового потока с именем ofstream. Используя объекты класса ofstream, программы могут выполнять вывод в файл. Для начала вы должны объявить объект типа ofstream, указав имя требуемого выходного файла как символьную строку, что показано ниже:
ofstream file_object("FILENAME.EXT");
Если вы указываете имя файла при объявлении объекта типа ofstream, C++ создаст новый файл на вашем диске, используя указанное имя, или перезапишет файл с таким же именем, если он уже существует на вашем диске. Следующая программа создает объект типа ofstream и затем использует оператор вставки для вывода нескольких строк текста в файл:
#include <iostream.h> #include <fstream.h> int main() { ofstream f("D://file.txt"); f << " Today thursday"<<'\n'; f<< "31.03.11"; } В данном случае программа открывает файл file.txt и затем записывает строку в файл, используя оператор вставки. Для того, чтобы считать данные из файла, необходимо создать объект типа ifstream (подготовить файл для чтения), указав в качестве параметра имя файла:
ifstream input_file("filename.EXT");
Следующая программа открывает файл file.txt, который был создан с помощью предыдущей программы, и читает, а затем отображает элементы файла:
#include <iostream.h> #include <conio.h> #include <fstream.h>
int main() { ifstream rf("D://file.txt"); //связываем rf с файлом на диске char one[64], two[64]; rf >> one; //считываем из файла данные в переменную one rf >> two; cout << one << endl; cout << two << endl; getch(); } Если вы откомпилируете и запустите эту программу, то, вероятно, предположите, что она отобразит первые 2 строки файла. Однако, подобно cin, входные файловые потоки используют пустые символы, чтобы определить, где заканчивается одно значение и начинается другое. В результате при запуске предыдущей программы на дисплее появится следующий вывод: Today Thursday Поэтому необходимо использовать getline для чтения строки файлового ввода. Следующая программа использует функцию getline для чтения всех трех строк файла:
#include <iostream.h> #include <conio.h> #include <fstream.h>
int main()
{ ifstream rf("D://file.txt"); char one[64], two[64]; rf.getline(one, sizeof(one)); rf.getline(two, sizeof(two)); cout << one << endl; cout << two << endl; getch(); } В данном случае программа успешно читает содержимое файла, потому что она знает, что файл содержит три строки. Однако во многих случаях ваша программа не будет знать, сколько строк содержится в файле. В таких случаях ваши программы будут просто продолжать чтение содержимого файла пока не встретят конец файла.
Не нашли, что искали? Воспользуйтесь поиском:
|