zloivan
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем добрый день, проблема такая сегодня же надо сдать лабу, и не успеваю ее написать никак. А ведь сегодня зачет. Лаба (наверное) очень простая, на тему "текстовые и бинарные файлы". Пишем мы в Builder 6. Нашел кучу матерьяла на тему файлов, но ничего что мне подошло бы, и вот не осталось времени, пожалуйста помогите безрукому, ибо время очень очень поджимает. Условия такие: 1)Ввод строк в текстовый файл. 2)Ввод чисел с клавиатуры в бинарный файл. 3)Ввод полей структуры в бинарный файл. 4)Сравнение двух текстовых файлов. 5)Сортирова бинарного файла из числе(структур) Вот такая вот не маленькая програмка. Написал только пункт один, а с бинарными файлами так и не смог разобратся. Код: #include <iostream> #include <conio> #include <fstream> #include <string> using namespace std; class File { private: string str,filename1,filename2; int *A,size; public: void AddString(); void CreateFile(); void CreateBinFile(); void AddIntArr(); ~File(){ delete [] A; } }; void File::AddString() { cout<<"Enter the text:"; getline(cin,str); } void File::CreateFile() { cout<<"Name your file: "; cin>>filename1; fstream out_file(filename1.c_str(), ios::out); out_file<<str<<endl; } //Вот тут начинаются проблемы, так как я не смог разобратся в работе с бин файлами. Хотелось бы понять, как мне проверить, после занесения в файл каких либо данных, что в нем находится. void File::CreateBinFile() { cout<<"Name your bin file: "<<endl; cin>>filename2; fstream binary_file ("file.dat", ios::binary | ios::out | ios::in); int i=0; while(A[i]) { binary_file.write(reinterpret_cast<char*>(&A[i]),sizeof(A)); Не могли бы вы подробно объяснить действие вот этой вот строки, списал ее с другой работы, но принцип понять не могу. Все что понял что она перегоняет элементы массива А, в символы типа чар, и после этого добавляет все полученное в файл. Вопрос в том, как теперь достать от туда эти символы, и переделать обратно в инт? i++; } binary_file.close(); } //Я хочу составіть числовой массив, и потом его целиком загнать в файл. Как это сделать в текстовом файле я знаю, как в бинарном, нет. void File::AddIntArr() { cout<<"Enter the size of an array: "<<endl; cin>>size; A= new int[size]; for (int i=0;i<size; i++) { cin>>A[i]; } cout<<endl; for (int i=0;i<size; i++) { cout<<A[i]<<" "; } cout<<endl; } int main() { File P1; P1.AddString(); P1.CreateFile(); P1.AddIntArr(); P1.CreateBinFile(); return 0; system("pause"); } | Я очень извиняюсь, если подобная тема уже была, а я ее не видел, просто время и впрямь поджимает. | Всего записей: 11 | Зарегистр. 15-03-2010 | Отправлено: 11:59 27-05-2011 | Исправлено: zloivan, 12:17 27-05-2011 |
|