Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
#1

прокоментировать функцию "ввод из типизированного файла" - C++

25.10.2011, 14:25. Просмотров 342. Ответов 1
Метки нет (Все метки)

Всем здрасте. Помогите плих нужно прокоментировать в тех местах где поставил пустые "//" и там где в них вопросы поставил, заранее спасибо, прокоменнтироват надо функцию ввод из типизированного файла она в самом низу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# include <iostream>    // заголовочный файл/библиотека для работы с вводом-выводом
# include <windows.h>         // для функции       CharToOem();
# include <fstream>             // для работы с файлом
# include <string>                // для работы со строками
using namespace std;
        char bufRus[256];
        char* Rus(const char* text)
        {
                CharToOem(text, bufRus);
        return bufRus;
        }
 
struct lfile{                   // эта структура описывает данные, которые будут хранится в списке 
        char name[15];     //в данном случае данные состоят из 2-х полей-массивов char (строки)
        char data[10];      //и одного целочисленного поля
        int upd;
};
struct sp{           //эта структура описывает 1 элемент (узел) списка. Каждый узел состоит из:
        lfile elfile;   // данных (их структура выше)
        sp *next;   // и указателя на следующий элемент списка
};
 
void print_list(sp *list);// это прототипы функций
void fb_output(sp *list);
sp* fromtipf();// эта функция возвращает указатель на элемент списка (sp* - тип ее возвращаемого значения, void тут не нужен)
sp* ft_enter(); //аналогично
sp* fb_enter();
sp* fs_enter();
sp* sort(sp *list);
void search(sp *list);
void fsearch(sp *list);
sp* ddf(sp *list);
sp* pind(sp *list);
sp* del(sp *list,sp *adr);
sp * vst(sp *list,sp *adr);
void zmn(sp *list);
 
void main()
{
   int v;
   sp *k; //объявлен указатель на начальный элемент (голову) списка
        while(1){
          cout<<Rus("  0: формирование списка из текстового файла")<<endl;
          cout<<Rus("  1: формирование списка из типизированного файла")<<endl;
          cout<<Rus("  2: формирование списка с экрана")<<endl;
          cout<<Rus("  3: сортировка")<<endl;
          cout<<Rus("  4: поиск по заданному полю с сохранением результатов в файле")<<endl;
          cout<<Rus("  5: выборка файла с наибольшим количеством обращений")<<endl;
          cout<<Rus("  6: замена записи")<<endl;
          cout<<Rus("  7: удаление записи после указанного адреса")<<endl;
          cout<<Rus("  8: вставка записи после указанного адреса")<<endl;
          cout<<Rus("  9: выход")<<endl;
          cout<<Rus("вариант ")<<endl;
          cin>>v;
          switch(v){
                case 0: k = ft_enter(); break;
                case 1: k = fb_enter(); break;
                case 2: k = fs_enter(); break;
                case 3: k = sort(k); print_list(k); break;
                case 4: search(k);break;
                case 5: fsearch(k); break;
                case 6: zmn(k); print_list(k); break;
                case 7: k = del(k,pind(k)); print_list(k); break;
                case 8: k = vst(k,pind(k)); print_list(k); break;
                case 9:return; break;
                }
        }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sp* fb_enter(){//ввод списка из типизированного файла
        sp* list =new sp; //создаем указатель на голову списка
        sp *ptr,*q;//
        int ok=1;//
        char name[15];
        cout<<Rus("введи имя входн тип.файла")<<endl;
        cin>>name;
        ifstream intf(name, ios::binary);//что такое тут ios::binary?
        ptr=list;//
        while (!intf.eof()){
                intf.read(reinterpret_cast<char *>(&ptr->elfile),sizeof(lfile));// вот эту если можно подробней
                        if(ptr->elfile.upd != NULL){//
                                q=ptr;//
                                ptr->next=new sp;//
                                ptr=ptr->next;//
                        }
        }
        q->next=NULL;//
        intf.close();
        return list;
}
Добавлено через 22 часа 49 минут
Help me? ну помогите люди очень важно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2011, 14:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос прокоментировать функцию "ввод из типизированного файла" (C++):

Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация") - C++
Вывести из структуры информацию о человеке, чья фамилия введена с клавиатуры #include &lt;iostream&gt; #include &lt;locale&gt; #include...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") - C++
Описать структуру с именем &quot;ORDER&quot;, содержащий следующие поля: &quot;Счет плательщика&quot;; &quot;Счет получателя&quot;; &quot;Сумма, переводится банковской...

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки - C++
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова &quot;ноль&quot;, &quot;один&quot;...&quot;девять&quot;,...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Написать функцию выбора пунктов меню стрелками "вверх" "вниз" - C++
Доброго всем времени суток.Пожалуйста подскажите как мне справиться с моей проблемой.Нужно написать функцию выбора пунктов меню стрелками...

1
ForEveR
В астрале
Эксперт С++
7980 / 4739 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.10.2011, 14:55 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sp* fb_enter(){//ввод списка из типизированного файла
        sp* list =new sp; //создаем указатель на голову списка
        sp *ptr,*q;//два указателя на sp.
        int ok=1;//Переменная ok со значением 1.
        char name[15];
        cout<<Rus("введи имя входн тип.файла")<<endl;
        cin>>name;
        ifstream intf(name, ios::binary);//что такое тут ios::binary? - режим бинарного открытия файла
        ptr=list;//теперь ptr указывает туда же куда и list
        while (!intf.eof()){
                intf.read(reinterpret_cast<char *>(&ptr->elfile),sizeof(lfile));/* вот эту если можно подробней - читаем из бинарного файла байты кол-вом размер структуры lfile в переменную. reinterpret_cast<T> - небезопасное преобразование. В данном случае т.к. read принимает указатель на char* преобразовываем указатель на lfile в указатель на char и читаем в него. */
                        if(ptr->elfile.upd != NULL){// Не слишком корректно. Лучше использовать просто 0.
                                q=ptr;//q теперь указывает туда же куда и ptr.
                                ptr->next=new sp;//выделяем память под следующий элемент списка
                                ptr=ptr->next;//ptr теперь указывает на тот элемент который был выделен строкой выше
                        }
        }
        q->next=NULL;//обнуляем следующий элемент за q.
        intf.close();
        return list;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2011, 14:55
Привет! Вот еще темы с ответами:

Переписать в файл О все элементы файла К с заменой в них символа "0" на символ "1" и наоборот - C++
Помогите создать файл К,элементы которого являются символьными. Переписать в файл О все элементы файла К с заменой в нх символа 0 на символ...

Переписать в файл О все элементы файла К с заменой в них символа "0" на символ "1" и наоборот - C++
Помогите. Нужно создать файл К,элементы которого являются символами. Переписать в файл О все элементы файла К с заменой в них символа 0 на...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru