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

C++

Войти
Регистрация
Восстановить пароль
 
madyyy
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
#1

ошибка в выводе инфы из файла - C++

26.12.2009, 16:36. Просмотров 505. Ответов 3
Метки нет (Все метки)

Почему выводит две строчки (одну не существующую)
ЗЫ Чет с поиском не врубаюсь...как сделать так что если (по условию) два абонента, то как их вывести?
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
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <string.h>
using namespace std;
 
struct ats //структура с типом данных ats состоящяя из 4х элементов типа char, unsigned, int
{
  char Date[12];
  char CityCode[20];
  unsigned SpeakTime; //--Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения
  int Tarif;
  char Number[15];
};
 
 
//fstream fio("ats.txt",ios::out|ios::in|ios::app);
 
void Zapis(ats*);
void Chtenie(ats*);
void Poisk(ats*);
 
int main()
{
   //-----Меню-----
    ats a;
    int button=0;
    do
    {
        cout <<"Enter 1 4tobu nocmotper' unfopmacuy o abonentax"<<endl;
        cout <<"Enter 2 4to6u dobavit' abonentov v bazy "<<endl;
        cout <<"Enter 3 vvesti orpanu4enua "<<endl;
        cout <<"Enter 4 for vuxod "<<endl;
        cin >>button;
 
    switch(button)
    { 
    case 1: Chtenie(&a);break; 
    case 2: Zapis(&a);break; 
    case 3: Poisk(&a);break;
    case 4: exit(-1);break; 
    default : cout<<"Enter right number!"<<endl;break; 
    };
    }
    while(button!=0); //этот цикл будет работать пока значение переменной button не будет равно 0
    return 0;
}
//--------конец меню---------
 
 
 
void Zapis(ats*a) //---функция записи в файл
{ 
 
    ofstream fio("ats.txt",ios::out|ios::app);
 
            if (!fio)
            cout << "Error!"<<endl;
 
            
        cout <<"Enter date: "<<endl;
        cin >>a->Date;
        cout <<"Enter code: "<<endl;
        cin >>a->CityCode; 
        cout <<"Enter vpem9 pa3rovopa"<<endl;
        cin >>a->SpeakTime;
        cout <<"Enter tariff: "<<endl;
        cin >>a->Tarif;
        cout <<"Enter the number abonenta: "<<endl;
        cin >>a->Number;
 
 
        fio<<a->Date<<" "<<a->CityCode<<" "<<a->SpeakTime<<" "<<a->Tarif<<" "<<a->Number<<endl;
 
 
 
        fio.close();
        fio.clear();
}
 
 
void Chtenie(ats*a) //----функция чтения из файла
{ 
    cout <<endl;
    ifstream fout("ats.txt", ios::in);
 
        if (!fout)
        cout << "Error!"<<endl;
 
 
    while(!fout.eof()) //цикл работает до тех пор пока не закончится файл
    {
    fout >>a->Date;
    fout >>a->CityCode; 
    fout >>a->SpeakTime;
    fout >>a->Tarif;
    fout >>a->Number;
 
    cout <<"Data: " << a->Date << " kod goroda: " <<a->CityCode<< " vpem9 pa3rovopa: "<<a->SpeakTime<< " tarif: "<<a->Tarif<<" nomer telefona: "<<a->Number<<endl;
 
    }
    
 
fout.close();
fout.clear(); 
 
}
 
void Poisk(ats*a) //------функия поиска по файлу
{
 
    ifstream fout("ats.txt");
 
    unsigned Time,Sum=0;
 
    cout <<"Vvedute orpanu4enue vremenu razgovorov "<<endl;
    cin >>Time;
 
 
 
    if (a->SpeakTime>Time)
        {
        do
        {
            fout >>a->Number, a->SpeakTime, a->Tarif;
        }
        while(fout.eof());
        
            Sum=a->SpeakTime*a->Tarif;
            
 
 
        
            cout <<"Nomer abonenta-> "<< a->Number<< endl;
            cout <<"Cymma no tarify-> "<< Sum<< endl;
        
        }
 
    else
        { 
            cout<<"Takux abonentov net!"<<endl;
    
        }
    
 
 
    fout.close();
    fout.clear();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 16:36     ошибка в выводе инфы из файла
Посмотрите здесь:
Ошибка, при считывании инфы с файла... C++
C++ Ошибка в выводе файла С++
C++ WinAPI Ошибка при выводе файла на озвучку
Ошибка при выводе строк из файла C++
C++ Builder Ошибка при выводе бинарного файла
C++ Ошибка при выводе файла с помощью fprintf
C++ WinAPI Ошибка доступа при выводе в listbox символа из файла
Удаление инфы из дискового файла C++
C++ Получение инфы. из файла с изображением
Почему при записи новой инфы из файла стирается старая? C++
Ошибка в выводе C++
C++ Ошибка в выводе ответа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
27.12.2009, 12:44     ошибка в выводе инфы из файла #2
вот как можно много записей сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
main()
{
     ats array[n];
     for (int i=0;i<n;i++)
     {
          Zapis(&array[i]);//функция для заполнения полей записи, надо в неё значение передавать по ссылке.
      }
      for (int i=0;i<n;i++)
      {
           print(array[i]);
      }
}
void print(const ats a)
{
    cout << Date << " "<< CityCode;
}
структуру файла с записями можно посмотреть? а то так вроде все нормально
madyyy
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
28.12.2009, 00:25  [ТС]     ошибка в выводе инфы из файла #3
Благодарю)
А вот с ошибочкой как? =(
madyyy
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
08.01.2010, 19:49  [ТС]     ошибка в выводе инфы из файла #4
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
//---------Курсач---------
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <string.h>
using namespace std;
 
struct ats //структура с типом данных ats состоящяя из 4х элементов типа char, unsigned, int
{
  char Date[12];
  char CityCode[20];
  unsigned SpeakTime; //--Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения
  int Tarif;
  char Number[15];
};
 
 
//fstream fio("ats.txt",ios::out|ios::in|ios::app);
 
void Zapis(ats*);
void Chtenie(ats*);
void Res(ats*); // restrictions-сравнение
 
int main()
{
   //-----Меню-----
    ats a;
    int button=0;
    do
    {
        cout <<"Enter 1 4tobu nocmotper' unfopmacuy o abonentax"<<endl;
        cout <<"Enter 2 4to6u dobavit' abonentov v bazy "<<endl;
        cout <<"Enter 3 vvesti orpanu4enua "<<endl;
        cout <<"Enter 4 for vuxod "<<endl;
        cin >>button;
 
    switch(button)
    { 
    case 1: Chtenie(&a);break; 
    case 2: Zapis(&a);break; 
    case 3: Res(&a);break;
    case 4: exit(-1);break; 
    default : cout<<"Enter right number!"<<endl;break; 
    };
    }
    while(button!=0); //этот цикл будет работать пока значение переменной button не будет равно 0
    return 0;
}
//--------конец меню---------
 
 
 
void Zapis(ats*a) //---функция записи в файл
{ 
 
    ofstream fio("ats.txt",ios::out|ios::app);
 
            if (!fio)
            cout << "Error!"<<endl;
 
            
        cout <<"Enter date: "<<endl;
        cin >>a->Date;
        cout <<"Enter code: "<<endl;
        cin >>a->CityCode; 
        cout <<"Enter vpem9 pa3rovopa"<<endl;
        cin >>a->SpeakTime;
        cout <<"Enter tariff: "<<endl;
        cin >>a->Tarif;
        cout <<"Enter the number abonenta: "<<endl;
        cin >>a->Number;
 
 
        fio<<endl<<a->Date<<" "<<a->CityCode<<" "<<a->SpeakTime<<" "<<a->Tarif<<" "<<a->Number;
 
 
 
        fio.close();
        fio.clear();
}
 
 
void Chtenie(ats*a) //----функция чтения из файла
{ 
    
    ifstream fout("ats.txt", ios::in);
 
        if (!fout)
        cout << "Error!"<<endl;
 
 
    while(!fout.eof()) //цикл работает до тех пор пока не закончится файл
    {
    fout >>a->Date;
    fout >>a->CityCode; 
    fout >>a->SpeakTime;
    fout >>a->Tarif;
    fout >>a->Number;
 
    cout <<"Data: " << a->Date << " kod goroda: " <<a->CityCode<< " vpem9 pa3rovopa: "<<a->SpeakTime<< " tarif: "<<a->Tarif<<" nomer telefona: "<<a->Number<<endl;
 
    }
    
 
fout.close();
fout.clear(); 
 
}
 
void Res(ats*a) //------функия ограничения
{
 
        ifstream fout("ats.txt"); //потоk чтения
        
        if (!fout) 
        cout << "Error!"<<endl;
 
        unsigned Time,Sum=0;
        
        ats array[n];
        for (int i=0;i<n;i++)
        {
 
        cout <<"Vvedute orpanu4enue vremenu razgovorov "<<endl;
        cin >>Time;
        }
                do
                {
                        fout >>a->Number, a->SpeakTime, a->Tarif;
                }
                while(!fout.eof());
 
        if (a->SpeakTime>Time)
                
        
        
    {
                Sum=a->SpeakTime*a->Tarif;
 
    
                
         cout <<"Nomer abonenta-> "<< a->Number<< endl;
                cout <<"Cymma no tarify-> "<< Sum<< endl; 
                
            }
 
                
 
        else
                { 
                        cout<<"Takux abonentov net!"<<endl;
        
                }
        
 
 
        fout.close();
        fout.clear();
}

Нужно сделать чтоб несколько абонентов выводило в последней функции (цикл по условию? Оо)
Yandex
Объявления
08.01.2010, 19:49     ошибка в выводе инфы из файла
Ответ Создать тему
Опции темы

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