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

Помогите закончить программу! - C++

Восстановить пароль Регистрация
 
Арианна
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 22
17.03.2012, 14:48     Помогите закончить программу! #1
Не получается написать программу. Нужно подсчитать количество иногородних пациентов.
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
#include <fstream.h>        // для файловых потоков
#include <iostream.h>
#include <string.h>
 
class person              // класс person
  {
  protected:
    char name[80];        
    char pol[1];
    short age;            
    char gorod[20];
    char diagnoz[50];
  public:
    void getData()        // получить данные о человеке
      {
      cout << "Vvedite imya: "; cin >> name;
        cout << "Vvedite pol: "; cin >> pol;
      cout << "Vvedite vozrast: "; cin >> age;
      cout << "Vvedite gorod: "; cin >> gorod;
        cout << "Vvedite diagnoz: "; cin >> diagnoz;
      }
  };
 
int main()
  {
  person pers;        // создать объект
  pers.getData();         // получить данные
                          // создать объект ofstream
  ofstream outfile("PERSON.TXT", ios::binary);
                          // записать в него
  outfile.write(reinterpret_cast<char*>(&pers), sizeof(pers)); 
  char l='Lugansk';
  for(char g;g==l;g++)
  {
      int k;
        k++;
        cout<< "kolichestvo inogorodnih pacientov" <<k;
        }
      return 0;
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Serejke_qq
 Аватар для Serejke_qq
149 / 107 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
17.03.2012, 15:37     Помогите закончить программу! #2
строки сравнивают с помощью функции:
C++
1
int strcmp(str1,str2);
Если она возращает :

меньше 0 - str1 меньше str2
больше 0 - str1 больше str2
0 - str1 равна str2

небольшой примерчик сравнения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cstring>
using namespace std;
 
int main(void)
{
    char str1[] = "qwerty";
    char str2[] = "qwerty";
 
    if(!strcmp(str1,str2))    cout << "строки равны!";    // Аналогично strcmp(str1,str2) == 0
    return 0 ;
}
Арианна
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 22
17.03.2012, 16:52  [ТС]     Помогите закончить программу! #3
Я не знаю как в моем случае воспользоваться этой функцией, ведь нужно чтобы поиск выполнялся по файлу с данными
p_r_a_g_m_a
 Аватар для p_r_a_g_m_a
108 / 60 / 17
Регистрация: 08.03.2012
Сообщений: 208
Завершенные тесты: 1
17.03.2012, 17:15     Помогите закончить программу! #4
Ошибка №1
Цитата Сообщение от Арианна
char l='Lugansk';
char вмещает в себя 1 символ (1 байт).

Ошибка №2
Цитата Сообщение от Арианна
g==l
Переменная g не инициализирована. Для сравнения строк (что здесь необходимо) используется std::strcmp

Ошибка №3
Цитата Сообщение от Арианна
int k;
k++;
Переменная k не инициализированная + локальная. Нужно использовать или глобальную переменную или static.

Ошибка №4
При прекращении работы цикла будут перебраны не все строки. Так-как он завершится при первом совпадении строк, не учитывая то, что после совпавшей строки могут быть еще.

Ну и еще момент
Цитата Сообщение от Арианна
ведь нужно чтобы поиск выполнялся по файлу с данными
Не вижу тут проверки из файла, только запись в него.
Арианна
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 22
17.03.2012, 18:20  [ТС]     Помогите закончить программу! #5
Большое спасибо, ваши советы очень помогли
p_r_a_g_m_a
 Аватар для p_r_a_g_m_a
108 / 60 / 17
Регистрация: 08.03.2012
Сообщений: 208
Завершенные тесты: 1
17.03.2012, 23:07     Помогите закончить программу! #6
Всегда рад)
Yandex
Объявления
17.03.2012, 23:07     Помогите закончить программу!
Ответ Создать тему
Опции темы

Текущее время: 08:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru