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

Не выводит структуры - C++

Восстановить пароль Регистрация
 
AndXor
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 18
02.12.2012, 15:23     Не выводит структуры #1
Народ такая проблема, не могу вывести нормально структуры ;(
И выводе списка с условием(функция Resc) если выводить просто if (abit[i].sumball>220) то он нормально выводит и никаких проблем не возникает. Если же выводить if ((abit[i].sumball>220) && (abit[i].city="Moscow")) то он ничего не выводит ;( Даже если оставить просто условие с городом то он тоже ничего не выведет, в чём может быть проблема?
Разработка в Visual C++ 6.0
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
//#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
using namespace std;
 
FILE *fl;
typedef struct 
{
    char fio[50];
    char city[20];
    int sumball;
} TAbityrient;
 
TAbityrient abit[30];
char filename[20];
int nst=0;
 
int Menu();
void Nnf();
void Newf();
void Spisok();
void Opf();
void Resc();
void Resf();
 
int main()
{
    while (true){
        switch (Menu())
        {
        case 1: Nnf(); break;
        case 2: Newf(); break;
        case 3: Spisok(); break;
        case 4: Opf(); break;
        case 5: Resc(); break;
        case 6: Resf(); break;
        case 7: return 0;
        default:
            puts("Ne pravilno vibran punkt");
        }
        puts("Press any key to continue");
        getch();
        system("cls");
    }
}
 
int Menu(){
    cout<<"Enter:"<<endl;
    cout<<"1. Enter FileName"<<endl;
    cout<<"2. New File"<<endl;
    cout<<"3. Enter list"<<endl;
    cout<<"4. Open File"<<endl;
    cout<<"5. Print result"<<endl;
    cout<<"6. Write to File"<<endl;
    cout<<"7. Exit"<<endl;
    int i;
    cin>>i;
    return i;
}
 
void Nnf(){
    cout<<"Enter FileName"<<endl;
    cin>>filename;
}
 
void Newf(){
    if ((fl=fopen(filename,"wb"))==NULL){
        cout<<"Error Creating"<<endl;
        exit(1);
    }
    cout<<"OK"<<endl;
    fclose(fl);
}
 
void Spisok(){
    if ((fl=fopen(filename,"rb+"))==NULL){
        cout<<"Error Creating"<<endl;
        exit(1);
    }
    cout<<"Enter the number of students"<<endl;
    cin>>nst;
    for(int i=0; i<nst; i++){
        cout<<"Enter Name"<<endl;
        cin>>abit[i].fio;
        cout<<"Enter City"<<endl;
        cin>>abit[i].city;
        cout<<"Enter the total score"<<endl;
        cin>>abit[i].sumball;
        fwrite(&abit[i],sizeof(TAbityrient),1,fl);
    }
    fclose(fl);
}
 
void Opf(){
    if ((fl=fopen(filename,"rb"))==NULL){
        cout<<"Erroe Opening"<<endl;
        exit(1);
    }
    nst=0;
    TAbityrient std;
    while (true){
        int nwrt=fread(&std,sizeof(TAbityrient),1,fl);
        if (nwrt!=1) break;
        abit[nst]=std;
        cout<<abit[nst].fio<<" "<<abit[nst].city<<" "<<abit[nst].sumball<<endl;
        nst++;
    }
    fclose(fl);
}
 
void Resc(){
    for(int i=0; i<nst; i++)
        if (abit[i].sumball>220)  cout<<abit[i].fio<<" "<<abit[i].city<<" "<<abit[i].sumball<< endl;
}
 
void Resf(){
    char filenamet[30];
    FILE *ft;
    cout<<"Enter FileName"<<endl;
    cin>>filenamet;
    if ((ft=fopen(filenamet,"w"))==NULL){
        cout<<"Error Creating";
        exit(1);
    }
    char s[80];
    for(int i=0; i<nst; i++)
        if ((abit[i].sumball>220)&&(abit[i].city=="Minsk")){
            strcpy(s,abit[i].fio);
            strcpy(s,abit[i].city);
            strcat(s,"\n");
            fputs(s,ft);
        }
        fclose(ft);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 15:23     Не выводит структуры
Посмотрите здесь:

Структуры.(не получаеться,НЕ выводит то что нужно) C++
с++как вывести указатель структуры на экран? а то все время что-нибудь подчеркивает или просто ничего не выводит( C++
с++,циклическая очередь, сразу норм выводит, а потом на где-то логика нарушается и неправильно выводит C++
C++ Почему не выводит структуры в файл?
C++ Выводит все подряд, а не определенный элемент структуры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StanislavUA
 Аватар для StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
02.12.2012, 15:43     Не выводит структуры #2
Цитата Сообщение от AndXor Посмотреть сообщение
abit[i].city="Moscow"
это присваивание, а не сравнение. нужно писать ==
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
02.12.2012, 15:50     Не выводит структуры #3

Не по теме:

Цитата Сообщение от StanislavUA Посмотреть сообщение
это присваивание, а не сравнение. нужно писать ==
символьные массивы так не сравниваются


Для сравнения строк используйте strcmp
StanislavUA
 Аватар для StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
02.12.2012, 15:54     Не выводит структуры #4
Цитата Сообщение от Croessmah Посмотреть сообщение
Сообщение от StanislavUA
это присваивание, а не сравнение. нужно писать ==
символьные массивы так не сравниваются
не заметил что там char, я просто string в основном использую, по этому на автомате написал
AndXor
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 18
02.12.2012, 17:46  [ТС]     Не выводит структуры #5
Народ я знаю что "=" это присваивание, честно говоря просто оЧепятка))
я делаю как положено == но почему-то всё безрезультатно((
StanislavUA
 Аватар для StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
02.12.2012, 18:02     Не выводит структуры #6
Цитата Сообщение от Croessmah Посмотреть сообщение
Для сравнения строк используйте strcmp
а что бы использовать == работайте со string а не char
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 18:57     Не выводит структуры
Еще ссылки по теме:

Выводит ошибку при удалении динамической структуры C++
C++ Структуры. Не выводит текст в таблицу и файл
Не корректно выводит значения структуры C++

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

Или воспользуйтесь поиском по форуму:
AndXor
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 18
02.12.2012, 18:57  [ТС]     Не выводит структуры #7
Всем спасибо strcmp помог мне)
Yandex
Объявления
02.12.2012, 18:57     Не выводит структуры
Ответ Создать тему
Опции темы

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