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

Решить упражнение на файловый ввод/вывод из книги Лафоре (12 глава) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск максимального элемента вектора http://www.cyberforum.ru/cpp-beginners/thread206034.html
Написала программу поиска максимального элемента вектора, только теперь её надо переделать немного с использованием указателей... #include<iostream.h> #include<malloc.h> #include<stdlib.h> #include<conio.h>
C++ Ввести n и числа a1, a2,...,an Вычислить и вывести коэффициенты многочлена p(x) = (x+a1)*(x+a1*a2)*...*(x+a1*a2*...*an) Ввести n и числа a1, a2,...,an Вычислить и вывести коэффициенты многочлена p(x) = (x+a1)*(x+a1*a2)*...*(x+a1*a2*...*an) http://www.cyberforum.ru/cpp-beginners/thread206023.html
C++ Целая часть от деления
Здравствуйте уважаемые форумчане! Есть ли в языке СИ функция, которая возвращает целю часть от числа( к примеру в паскале (div)) А если нет, то каким способом ее можно получить. Заранее спс!
Матрица C++
Помогите в решении примера! Пожалуйста:) Задана квадратная матрица порядка n. Обнулить все елементы, сума индексов которых есть парным числом.
C++ Как заполнить массив! http://www.cyberforum.ru/cpp-beginners/thread205993.html
Приветствую Вас друзья! Кто знает подскажите как заполнить массив, числами с плавающей запятой. объявляю: float mas; /*заполняю*/ randomize(); for(int i=0; i<20;i++) { mas = random(10);
C++ Перегруженная функция Здравствуйте, помогите пожалуйста разобраться. Как сделать из функции MaxWord перегруженную функцию, чтобы выводил например длину самого длинного слова? #include <stdio.h> #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <string.h> void MaxWord (int , char ) { int Index, MaxLen = 0; char C, Line, *Src = (char*) &Line, *MaxWord = (char*) &Line; подробнее

Показать сообщение отдельно
masterdov
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 32
30.10.2016, 18:36     Решить упражнение на файловый ввод/вывод из книги Лафоре (12 глава)
Изучая списки с++ , я наткнулся на эту задачу Решить упражнение на файловый ввод/вывод из книги Лафоре (12 глава)
Обратите внимание на подредактированный код Sylvos
или вот он :
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include<iostream>          //Поключаем библиотеку iostream
using namespace std;        //Чтобы не писать std:: перед каждим cin или cout
#include<fstream>           //Поключаем библиотеку fstream
class Name                  //Клаас Name
{
private:                    //Закрытые поля класся
    char n[50],f[50],o[50]; //Имя, Фамилия, Отчество
    unsigned long num;      //Номер телефона
    static fstream file;    //Статический Указатель на Файл
public:                     //Открытые методы класса
    Name();                 //Конструктор по умолчанию
    void Open();            //Создаеть файл
    void Save();            //Сохранить поля класса в файл
    void Load();            //Загружает данные из файла в поля класса и выводит их на екран, делате так пока не дойдет до конца файла
    void Cout();            //Вывод на екран полей класса
    void Cin();             //Ввод даныхв поля класса
    void Menu();            //Меню выбора
};
//-----------------------------------------------------------------------------------
fstream Name::file;
//-----------------------------------------------------------------------------------
Name::Name()                //Конструктор по умолчанию
{
    Open();                 //Запустить метод Oen(); который Создаеть файл
}
//-----------------------------------------------------------------------------------
void Name::Open()           //Создаеть файл
{
    file.open("D:\\Data.txt",ios::in|ios::out|ios::binary|ios::app);
    //Создать файл Data.txt на диске D:\ с возможностью записи, чтени, в бинарном режиме, записывать даные в конец файла
}
//-----------------------------------------------------------------------------------
void Name::Save()           //Сохранить поля класса в файл
{
    file.seekp(0,ios::end);     //Перевести указатель файла в конец файла
    file<<n<<' '<<f<<' '<<o<<' '<<num<<' '; //сохрание данных в файл
}
//-----------------------------------------------------------------------------------
void Name::Load()           //Загружает данные из файла в поля класса и выводит их на екран, делате так пока не дойдет до конца файла
{
    file.seekp(0,ios::beg);     //Перевести указатель файла на начало файла     
    while(!file.eof())          //До тех пор пока не дойдет до конца файла
    {
        file>>n>>f>>o>>num;     //Читать даные из файла и записывать их в поля
        if(file.eof())          //Если конец файла выйти из цикла не вводить конец файла на екран
            break;          
        Cout();                 //Вывести на екран поля класса
    }
}
//-----------------------------------------------------------------------------------
void Name::Cout()           //Вывод на екран полей класса
{
    cout<<"Имя: "<<n<<endl                      //Выводит текст Имя: и поле класса n
        <<"Фамилия: "<<f<<endl                  //Выводит текст Фамилия: и поле класса f
        <<"Отчество: "<<o<<endl                 //Выводит текст Отчество: и поле класса o
        <<"Номер телефона: "<<num<<endl<<endl;  //Выводит текст Номер телефона: и поле класса num
}
//-----------------------------------------------------------------------------------
void Name::Cin()            //Ввод даныхв поля класса
{
    cout<<"Введите Имя: ";      //Выводит текст Введите Имя:
    cin>>n;                     //Ввод имени в поле n
    cout<<"Введите Фамилию: ";  //Выводит текст Введите Фамилия:
    cin>>f;                     //Ввод фамили в поле f
    cout<<"Введите Отчество: "; //Выводит текст Введите Отчество:
    cin>>o;                     //Ввод отчества в поле o
    cout<<"Введите Номер телефона: ";//Выводит текст Введите Номер телефона:
    cin>>num;                   //Ввод телефона в поле num
}
//-----------------------------------------------------------------------------------
void Name::Menu()           //Меню выбора
{
    char ch;                //Перемменная через которую пользователь производит ввод
    do                      //Запуск цикла
    {
        cout<<endl;
        cout<<"1. Ввод новой анкеты"<<endl                  //Ну тут думаю итка все понятно
            <<"2. Вывести анкету на екран"<<endl            //
            <<"3. Запись анкеты в файл"<<endl               //
            <<"4. Вывести содержимое файла на экран"<<endl  //
            <<"5. Выход"<<endl<<endl;
        cin>>ch;            //Ввод пользователя
        cout<<endl;
        switch(ch)          //Анализ ввода пользователя
        {
            case'1':Cin();break;    
            case'2':Cout();break;
            case'3':Save();break;
            case'4':Load();break;
            case'5':break;
            default:cout<<"Не правильный ввод даных повторите попытку"<<endl;system("PAUSE");
        }
    }
    while(ch!='5');//Условие цикла Пока пользователь не введет 5
}
//-----------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------
int main()
{
    setlocale(LC_ALL,"Rus");
    Name n;
    n.Menu();
    return 0;
}
Дело в том, что, когда я решил его опробовать, то при выборе вывода содержимого файла , вывод циклится и выводит пустые поля имени отчества и фамилии, а поле номера телефона выводит. Кажется ошибка либо в Load(); либо Cout(), подскажите, как это исправить
 
Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru