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

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

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

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

02.12.2012, 15:23. Просмотров 294. Ответов 6
Метки нет (Все метки)

Народ такая проблема, не могу вывести нормально структуры ;(
И выводе списка с условием(функция 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);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 15:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не выводит структуры (C++):

Не корректно выводит значения структуры - C++
Не правильно выдает значения из структуры на русском языке #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstdlib&gt; using...

Почему не выводит структуры в файл? - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;stdio.h&quot; void main () { FILE *fp; fp=fopen(&quot;test.dat&quot;,&quot;w&quot;); struct...

Структуры. Не выводит текст в таблицу и файл - C++
В столбцах &quot;Назв.&quot;, &quot;Язык&quot;, &quot;Валюта&quot; не выводит текст, хотя цифры правильно выводит, не пойму в чем причина Скрин: Вот код: ...

Выводит ошибку при удалении динамической структуры - C++
При удалении динамической струтуры выдаёт ошибку Удаляю две струтуры . Первую удаляет нормально,а со второй пролемы . Вот что вылезает...

Выводит все подряд, а не определенный элемент структуры - C++
void PoiskPoReting(Name NameFile, Auto &amp;Pauto, int flag, char rating) { if (flag) { file = fopen(NameFile, &quot;r+&quot;); while...

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

6
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
02.12.2012, 15:43 #2
Цитата Сообщение от AndXor Посмотреть сообщение
abit[i].city="Moscow"
это присваивание, а не сравнение. нужно писать ==
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
02.12.2012, 15:50 #3

Не по теме:

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


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

Написать программу, которая выводит пример на вычитание, запрашивает ответ пользователя, проверяет его и выводит сообщение о правильности - C++
Написать программу, которая выводит пример на вычитание (в пределах 100), запрашивает ответ пользователя, проверяет его и выводит сообщение...

Функция внутри структуры использует указатель, как поле этой структуры - C++
Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp, есть файл GlobalItems.h, где хранятся глобальные...

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. - C++
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) - C++
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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