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

С++ для начинающих

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

Работа с файлом - C++

07.12.2009, 03:48. Просмотров 593. Ответов 7
Метки нет (Все метки)

Помогите доделать программу.
Необходимо создать файл структуры: фамилия абонентов, год установки телефона, номер телефона.

Программу написал, все нормально записывается и считывается, но не знаю как сделать условия:
- по вводимой с клавиатуры фамилии абонента вывести номер телефона;
- определить количество установленных телефонов с ХХХХ года (год вводится с клавиатуры).
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
//---------------------------------------------------------------------------
#pragma hdrstop
#include <tchar.h>
#pragma argsused
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define bool int
#define true 1
#define false 0
 
struct ATS
{
   char fio[30];
   char phone[20];
   char date[11];
};
 
void Add();
void wr();
void poisk();
void tel();
 
int main()
{
   clrscr();
   while (true)
   {
      char c;
      cout << "Viberite operaciu: \n";
      cout << "\t-> 1. Dobavit v bazu \n";
      cout << "\t-> 2. Prosmotr bazu\n";
      cout << "\t-> 3. Vihod \n";
      cout << "\t-> 4. poisk abonenta \n";
      cout << "\t-> 5. ystanovlena telefonov \n";
      cout << "Operaciya: "; cin >> c;
      cin.ignore();
      cin.clear();
 
   switch(c)
      {
      case '1': Add();   break;
      case '2': wr();    break;
      case '3': exit(0); break;
      case '4': poisk(); break;
      case '5': tel(); break;
      }
   }
}
 
void Add()
{
   FILE* F = fopen("Ats.txt", "rt+"); // open ats
   bool f  = false; // true - new file
 
   if (!F)
   {
      F = fopen("Ats.txt", "wt+");
      f = true;
   }
 
fseek(F, 0, SEEK_END);
ATS ats;
cout << "Vvedite FIO:   ";
cin.getline(ats.fio, sizeof(ats.fio));
 
cout << "Vvedite nomer: ";
cin.getline(ats.phone, sizeof(ats.phone));
 
cout << "Vvedite god:  ";
cin.getline(ats.date, sizeof(ats.date));
 
   // zapolnenie fila
   if (!f) fputc('\n', F);
   fputs(ats.fio, F);        fputc('\n', F); //zapis stroki v file
   fputs(ats.phone, F);  fputc('\n', F);
   fputs(ats.date,F);      fputc('\n', F);
 
   fclose(F); // vihod iz file
}
 
void wr()
{
     char read_str[50], *result;
     FILE* f = fopen("Ats.txt", "r");
 
     while (!feof(f))
     {
          result=fgets(read_str,20, f);
          cout << read_str;
     }
}
void poisk()
{
}
void tel()
{
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2009, 03:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлом (C++):

Работа с файлом - C++
ofstream file1(&quot;C:\\Users\\User\\Desktop\\jewelry.txt&quot;); Ошибка 6 error C2146: синтаксическая ошибка: отсутствие &quot;;&quot; перед...

работа с файлом - C++
Как найти определённое слово в массиве? такого вида 217.118.79.33 dan HTTP GET http://google.com/

c++ работа с файлом - C++
Здраствуйте,в си знания - средненькие,мне предоставилась задача - нужно згенерировать файл для ипфильтра торрента,с сайта провайдера мне...

Работа с файлом - C++
в общем есть некая решенная задача которая имеет классы и методы(ввода и вывода) для них, нужно ювелирно переделать методы так чтоб они...

Работа с файлом - C++
char *FileName =&quot;123.txt&quot;; int h=fileno(fopen(FileName,&quot;r+&quot;)); FileName=&quot;\0&quot;; Как мне теперь используя только h работать с файлом?...

Работа с файлом - C++
Добрый вечер. Нужно подсчитать количество точек, попадающих в круг радиуса 4 с центром в начале координат. На паскале такую прогу уже делал...

7
niXman
Эксперт С++
3137 / 1449 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.12.2009, 04:04 #2
Цитата Сообщение от ManGysITI Посмотреть сообщение
- по вводимой с клавиатуры фамилии абонента вывести номер телефона;
Вводишь фамилию абонента, жмешь ентер, в цикле сравниваешь введенную фамилию с каждым полем fio структуры ATS


Цитата Сообщение от ManGysITI Посмотреть сообщение
- определить количество установленных телефонов с ХХХХ года (год вводится с клавиатуры).
В структуру ATS, добавь поле year. В цикле проверяешь условие (введенная_дата < массив_структур[индекс].year) если истино - инкриментируешь счетчик.
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
07.12.2009, 04:05 #3
Цитата Сообщение от ManGysITI Посмотреть сообщение
#define bool int
#define true 1
#define false 0
какой смысл этих строк? В С/С++ по умолчанию 0 - false, все остальное - true

Обычный поиск
C++
1
2
if(!strcmp(ats[i].fio, input_fio))
    std::cout<<ats[i].number;
0
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
09.12.2009, 10:57 #4
а разве структура при чтении из файла сохраняется?
Он же произвел запись в файл, а там надо к примеру искать совпадение фамилии и выводить следующую строку с номером или я не права.
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
09.12.2009, 19:54 #5
vikaplys, не сохраняется. Я с расчетом на то, что раз у ManGysITI есть какой-то код, то он додумается самостоятельно сделать массив структур
0
ManGysITI
0 / 0 / 0
Регистрация: 03.11.2008
Сообщений: 60
10.12.2009, 17:14  [ТС] #6
Что-то я совсем запутался, все же как организовать поиск и вывод нужной мне информации?
0
ManGysITI
0 / 0 / 0
Регистрация: 03.11.2008
Сообщений: 60
11.12.2009, 02:54  [ТС] #7
мне надо считать из файла в массив структур или как ?
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
11.12.2009, 08:09 #8
ManGysITI, да
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2009, 08:09
Привет! Вот еще темы с ответами:

Работа с файлом - C++
Помогите если не затруднит. Есть текстовый файл(примерно такой): A asdada qweqw A ijiijij nvbjk rtrt A

Работа с файлом - C++
Ранее уже выкладывал код. Поизменял. Поиск разработал. Но ни фига не работает)). Помогите найти. пожалуйста ошибку. В майне цикл не...

Работа с файлом - C++
Поясню: записываю файл из двумерного целочисленного вектора вот такой строкой: fprintf(f2, &quot;%c&quot;, dinom); да да именно со спецификатором...

Работа с файлом - C++
Мне требуется подключить текстовый файл ко всей программе. Прежде поключал файл только к конкретной процедуре. Благодарю за помощь.


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

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

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