Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
madyyy
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
#1

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

26.12.2009, 16:36. Просмотров 540. Ответов 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 16:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ошибка в выводе инфы из файла (C++):

Удаление инфы из дискового файла
Есть файл. Этот файл читается и пишется как типизированный (подозреваю, что к...

Кракозябры при выводе из файла UTF-8
Здравствуйте. Тема кодировки достаточно популярна. Правда, в этих всех темах...

Ошибка при выводе бинарного файла
Добрый день! Ошибка вот в чем: при сортировке массива, в одну ячейку...

Ошибка в выводе данных
ShowMessage(&quot;Вы ответили на &quot;+i+&quot;вопросов правильно&quot;); ошибка: ...

Ошибка при выводе в Edit
не могу понять в чём проблема,при компиляции вылетает следующие ver1.cpp(80):...

Ошибка при выводе двумерного массива
Ребят помогите решить проблему с массивом. Вот задание: Дан целочисленный...

3
Aye Aye
370 / 284 / 97
Регистрация: 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;
}
структуру файла с записями можно посмотреть? а то так вроде все нормально
0
madyyy
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
28.12.2009, 00:25  [ТС] #3
Благодарю)
А вот с ошибочкой как? =(
0
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();
}

Нужно сделать чтоб несколько абонентов выводило в последней функции (цикл по условию? Оо)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2010, 19:49
Привет! Вот еще темы с решениями:

Полезные Хедеры и немного инфы о них
Сразу к делу... Я сегодня в одном исходнике обнаружил в куче файлов обычно...

Ошибка, при считывании инфы с файла...
Вот есть код:#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt;...

Пауза в выводе инфы в Memo
Доброго времени суток всем. Есть у меня такая задача. В компонент Memo...

Порядковый номер в GridView при выводе инфы из текста
Здравствуйте. Вывожу данные из файла в dataGridView таким вот образом: //...


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

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

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