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

Считать структуру из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввести из клавиатуры два числа, знак операции между ними и вывести результат, к нажатию "?". http://www.cyberforum.ru/cpp-beginners/thread257832.html
Ввести из клавиатуры два числа, знак операции между ними и вывести результат, к нажатию "?" взглянете кто знает, ничего не понимаю... сделайте пожалуйста через while!!!!!!!!!!
C++ Метод половинного деления.Написать программу на С++ Помогите пожалуйста ,исправить ошибки. Написать программу на С++ методом половинного деления. ФУНКЦИЯ:0.1*x*x-x*log(x); ПРОГРАММА НА с++: #include<iostream> #include<math.h> using namespace... http://www.cyberforum.ru/cpp-beginners/thread257829.html
Консольное приложение для тестирования. C++
Добрый день! Получил задание разработать консольное приложение для тестирования, на основе готовых тестов. Тест представляет собой вопрос с несколькими вариантами ответов. Межет быть один или...
Всем программистам! C++
Нужна ваша помощь! Завтра у меня олимпиада по программированию! так вот мне нужно решить 4 задачи на с++ или паскаль не имеет значения! пока еще незнаю какие задачи! Напишите мне на почту плз!...
C++ Кнопка вверх. http://www.cyberforum.ru/cpp-beginners/thread257794.html
Здравствуйте! Есть программа, нужно сделать кнопку, которая будет в верхнем дереве папок переходить вверх. Помогите, буду благодарен!
C++ Вопрос про реестр Здравствуйте господа програмисты!У меня есть программа,честно сознаюсь скачал с интернета и переделал не много,поэтому не доконца понимаю.Вопрос собственно вот какой-вот текст программы- ... подробнее

Показать сообщение отдельно
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
15.03.2011, 20:36  [ТС]
Пожалуйста без критики, но моя read(first) неправильно читает( выводит ММММ)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include "stdafx.h"
#include <stdio.h>
#include <Windows.h>
#include <iostream>
#include <fstream>
using namespace std;
 
struct stud {
    char name[36];
    stud* next;
};
 
int save(stud* first)
{
    char fname [80];
    if (first==0) {cout<<"Пусто";Sleep(500);return -1;}
    cout<<"Введите имя (путь) к файлу: \n";
    cin>>fname;
        ofstream ofs(fname);
        do  {
            ofs<<first->name<<endl;
            if(first->next==NULL) break;
            else first=first->next;
            }while(first->next);
        ofs.close();
    return 0;
}
void read(stud* &first)
{
    ifstream dataIn;
    char fname [80];
    stud Cur;
    stud* p;
    cout<<"Введите имя (путь) к файлу: \n";
    cin>>fname;
    dataIn.open(fname);
            if(dataIn.is_open())
            {       while(dataIn.good())
                    {       dataIn.read((char *)&Cur,sizeof(stud));
                            p=new stud;
                            p=&Cur;
                            p->next=first;
                            first=p;
                    }
                    dataIn.close();
            }
            else cout<<"Не удалось открыть файл для чтения\n";
}
void search (stud* first)
{
    char name[36];
    int i=1;
    if(first==NULL){cout<<"Пусто\n"; Sleep(1000); return;}
    cout<<"Введите имя искомого студента >";
    cin>>name;
    do  {if(strcmp(name,first->name)) 
            {cout<<i+1<<"-й номер в списке\n"; Sleep(1000); return;}
        else {
                i++;
                first=first->next;
             }
        }while(first->next);
    cout<<"Нет такого студента\n";Sleep(1000);
    return;
}
void adding(stud* &first){
    system ("CLS");
    stud *p=new stud;
    cout<<"\nВведите имя студента: ";
    cin>>p->name;
    p->next=first;
    first=p;
}
void deleting(stud* &first)
 {
    if(first==NULL){cout<<"Уже пуcто\n"; Sleep(300); return;}
    if(first->next==NULL){
        delete first;
        first=NULL;
        return;
    }
    stud* tmp=first;
    while(tmp->next->next){
        tmp=tmp->next;
    }
    delete tmp->next;
    tmp->next=NULL;
    return;
}
void delling(stud* &first)
{
    if(first==NULL){cout<<"Уже пусто\n"; Sleep(200); return;}
    if(first->next==NULL){
        delete first;
        first=NULL;
        return;
    }
    system ("CLS");
while(first->next)
    deleting(first);
    deleting(first);
    return;
}
void empty(stud* first)
{
  int i=0;
  if(first==NULL)
    {
        cout<<"Очередь пуста"<<endl;
        Sleep(500);
    }
    else
        {
        while(first->next){
            i++;
            first->next;
        }
        cout<<"\nВ очереди "<<i+1<<" элементов"<<endl;
        Sleep(1000);
        }
  return;
}
 void show(stud* first)
 { if(first==NULL){cout<<"Пусто\n"; Sleep(200); return;}
    system ("CLS");
    
    if(first->next==0) {cout<<endl<<first->name;  Sleep(4000); return;}
    else {while(first->next)
        {
            cout<<endl<<first->name;
            first=first->next;
        }}
    if(first->next==0) cout<<endl<<first->name;
    cout<<endl;
    system("pause");
 }
 int main()
{setlocale(LC_ALL, "Russian");
    stud* first=NULL;
    int sw;
    while(1)
    {
        system ("CLS");
        cout<<"1. Добавить студента в список\n"<<"2. Удалить из списка\n";
        cout<<"3. Проверить список на пустоту\n"<<"4. Поиск"<<endl<<"5. Очистить очередь"<<endl<<"0. Выход"<<endl<<"6. Показать список"<<endl<<endl<<"Сделайте свой выбор\n>";
        cin>>sw;
        switch(sw)
        {
            case 1: adding(first); break;
            case 2: deleting(first); break;
            case 3: empty(first); break;
            case 4: search(first); break;
            case 5: delling(first); break;
            case 6: show(first);break;
            case 7: save(first);break;
            case 8: read(first);break;
            case 0: return 0; break;
        }
    }
}
Добавлено через 31 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void read(stud* &first)
{
    ifstream dataIn;
    char fname [80];
    stud Cur;
    stud* p;
    cout<<"Введите имя (путь) к файлу: \n";
    cin>>fname;
    dataIn.open(fname);
            if(dataIn.is_open())
            {       while(dataIn.good())
            {       dataIn.read((char *)&Cur.name,sizeof(stud));
                            p=new stud;
                            cout<<p->name<<" ";
                            p=&Cur;
                            p->next=first;
                            first=p;
                    }system("pause");
                    dataIn.close();
            }
            else cout<<"Не удалось открыть файл для чтения\n";
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru