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

Сравнение строк в структуре, чтение из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как правильно прочитать данные? http://www.cyberforum.ru/cpp-beginners/thread801231.html
Как правильно прочитать данные? "ER-200" 06:43 10:40 "Red Arrow" 23:55 07:55 "Express" 23:59 08:00 "Slow Train 1" 10:00 09:59 "Slow Train 2" 10:00 10:00 Строчки отдельно чтобы при выводе написать не только одно слово, а название целиком? Добавлено через 8 минут
C++ Адресация и поиск переменной/функции Здравствуйте! Возникла такая задача. Есть какой-то .exe файл (х64). В иде я нашел переменную и её значение. Через артмани я нашел адрес этой переменной. Я читаю её через ReadProcessMemory(). Однако, если перезапустить этот .exe файл, то все адреса меняются и я не могу снова прочитать значение переменной. --- http://www.cyberforum.ru/cpp-beginners/thread801217.html
Программа выводит изображение календаря на любой месяц C++
Программа выводит изображение календаря на любой месяц. Выходные и праздничные дни выделяются цветом, текущая дата рамкой. Имеется возможность задать праздничные дни и сделать краткую запись, характеризующую этот день, например, «День Парижской коммуны». Когда год заканчивается, то календарь автоматически обновляется.
C++ конструктор при возврате значения из ф-ии
В литературе написано что при возврате значения из ф-ии вызывается конструктор копирования, но в примере такого не происходит. Сначала вызывается при создании "a b;" потом для аргумента "a func(a)", и теле ф-ии при создании нового объекта "a b;" и все. Как тогда происходит возврат значения? class a { public: a() { std::cout << "construct" << std::endl; } a(const a& b) {...
C++ Перевод из одной системы счисления в другую http://www.cyberforum.ru/cpp-beginners/thread801181.html
Проблема с переводом из двоичной системы в десятичную. Допустим у нас есть такое число 11101101 это 237 моя программа хорошо переводит, но если введем 11101110 это 238 моя программа выдает 239. Какую ошибку я допустил? void binary_to_ten(int binary) { int tmp = binary, sum = 0; int number = number_digit(tmp); vector<int> binary_code; while(tmp != 0) {...
C++ Как разумно получить доступ к приватной переменной Есть в классе приватная переменная clientName. Мне нужно защитить ее так, чтобы для внешних классов она была только для чтения. Не получается. Например, следующий код не спасает: Попытка №1 class Client { private: wchar_t clientName; public: wchar_t* getClientName() { подробнее

Показать сообщение отдельно
Noirman
0 / 0 / 0
Регистрация: 03.03.2009
Сообщений: 31
05.03.2013, 16:18     Сравнение строк в структуре, чтение из файла
Требуется написать программу, которая считывает из файла данные о студентах, сортирует их по фамилии и выводит их на экран. Далее нужно найти однофамильцев в группе и вывести данные о них на экран. Проблемы, собственно, две:
1. Не могу сделать чтение файла через eof (только статичное определение числа записей).
2. Функция поиска однофамильцев (void poisk()) работает неправильно.

Подскажите, что я сделал неправильно?

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
#include <iostream>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
struct student
{
    char fam[20];
    int vozrast;
    char gruppa[5];
    double ball;
};
 
 
void read(student *stud, int n, int i)
{
 ifstream in("file.txt");  
    if(!in)
    {
        cout<<"File can not be open\n"; 
       
    }                                          
  
    
      for(i = 0; i < n; i++)
    { 
    in >> stud[i].fam >> stud[i].vozrast >> stud[i].gruppa >> stud[i].ball;
   }
 
}
 
 
 void sort(student *stud, int n, int i, int j,student swap )
 {
    
    for(i = 0; i < n; i++)
      for(j = i + 1; j < n; j++)
       if (strcmp (stud[i].fam, stud[j].fam) > 0)
    
    {
        swap = stud[i];
        stud[i] = stud[j];
        stud[j] = swap;
    }
 }
 
 void out(student *stud,int n, int i)
{
    for(i = 0; i < n; i++)
   
        for(i = 0; i < n; i++)
    { 
    cout << stud[i].fam << '\t' << stud[i].vozrast << '\t' <<  stud[i].gruppa << '\t' << stud[i].ball; 
    
     cout << endl;
    }
}
 
 void poisk(student *stud, int n, int i, int j)
{
    for(i = 0; i < n; i++)
    for(j = i + 1; j < n; j++)
    if (strcmp (stud[i].fam, stud[j].fam) == 0)
    {
       cout << stud[i].fam << '\t' << stud[i].vozrast << '\t' <<  stud[i].gruppa << '\t' << stud[i].ball;
cout << endl;
    }
 
}
 
 void poisk1(student *stud, int n, int i, char fama[20])
            {
            cout << "Enter surname" << endl;
    cin >> fama;
 
    for(i = 0; i < n; i++)
  
 if (strcmp (fama, stud[i].fam) == 0)
    {
    
     cout << stud[i].fam << '\t' << stud[i].vozrast << '\t' <<  stud[i].gruppa << '\t' << stud[i].ball; 
             cout << endl;
 
    }
            }
 
 void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
student swap;  
int  i,j,k;
int key=0, n=8;
char fama[20];
 
student *stud = new student [n];
 
do
    {
        cout<<"1.Students\n2.Surname\n3.Search\n0.Exit\n";
        cin>>key;cin.ignore(1);
        switch(key)
        {
        case 1:
            cout << endl << "Surname Age Group Ball" << endl << endl;
            read(stud,n,i);
            sort(stud,n,i,j,swap);
            out(stud,n,i);
            break;
        case 2:
           read(stud,n,i);
           poisk(stud,n,i,j);
            break;
        case 3:
            read(stud,n,i);
            poisk1(stud,n,i,fama);
           break;
         case 0:
           break;
       
        }
 
    }while(key!=0);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru