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

C++

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

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

26.12.2009, 16:36. Просмотров 508. Ответов 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++):

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

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

Ошибка при выводе бинарного файла - C++ Builder
Добрый день! Ошибка вот в чем: при сортировке массива, в одну ячейку StringGrid вставляет две переменные. И из-за этого наверно теряется...

Ошибка в выводе данных - C++ Builder
ShowMessage(&quot;Вы ответили на &quot;+i+&quot;вопросов правильно&quot;); ошибка: class1.h(436): E2085 Invalid pointer addition

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

Ошибка при выводе двумерного массива - C++ Builder
Ребят помогите решить проблему с массивом. Вот задание: Дан целочисленный массив X. Заменить в нем все элементы меньше 5 числом 111. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;
}
структуру файла с записями можно посмотреть? а то так вроде все нормально
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
Привет! Вот еще темы с ответами:

Полезные Хедеры и немного инфы о них - C++ Builder
Сразу к делу... Я сегодня в одном исходнике обнаружил в куче файлов обычно присущих проэкту, хедер файл который я скопировал в другой...

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

Пауза в выводе инфы в Memo - Delphi
Доброго времени суток всем. Есть у меня такая задача. В компонент Memo выводятся данные с порта Com. Мне нужно по нажатию клавиши временно...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.01.2010, 19:49
Ответ Создать тему
Опции темы

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