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

Ошибка в WHILE при обработке массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задания на строки http://www.cyberforum.ru/cpp-beginners/thread314707.html
Помогите сделать 4 задачки на строки! Я в языке С по строкам вообще не понимаю(( Есть все коды на Паскале) 1. Дан непустой ряд. Вывести коды его символов через пробел. 2. Дан ряд символов, которые изображают целое позитивное число. Если оно представляет собой запись целого числа со значением последней цифры равной 0, то вывести «Данное число делится на 10 нацело», в противном...
C++ Решение уравнения методом половинного деления Уравнение x^5-5=0 методом половинного деления нужно найти приблизительный корень #include <cstdlib> #include <iostream> #include <cmath> using namespace std; int main(int argc, char *argv) http://www.cyberforum.ru/cpp-beginners/thread314691.html
C++ перегрузка операций для однонаправленных списков
Задача вот в чём: АТД - однонаправленный список в элементами char. Дополнительно перегрузить следущие операции: + объединить списки; -- удалить элемент из начала; ==проверка на равенство. Проблема с перегрузкой операций. Ругается на часть кода где перегружается ==, если закоментить, то при выводе объединнёного списка и списка с удалённым элементом, выводит иероглифы. Помогите кто может!...
Одномерные массивы. C++
Объявить два динамических массива целых чисел.Написать функции для заполнения их случайными значениями и вывода результатов на экран.Первым на печать вывести массив, содержащий наибольшее значение(с помощью функций). Напечатать также это значение и его порядковый номер.Отсортировать по не возрастанию с помощью включения. Диапозон значений (-50:150). P.S. Прошу помогите как можно скорее....
C++ Вычислить с заданной точностью http://www.cyberforum.ru/cpp-beginners/thread314670.html
http://i22.***********/big/2011/0607/95/02db2277e85b5a1d8e82919de7293995.jpg
C++ Вычислить по формуле http://i22.***********/big/2011/0607/27/df317010d86026ed4942a3503d6c6627.jpg подробнее

Показать сообщение отдельно
Nik.Shinkareff
 Аватар для Nik.Shinkareff
2 / 2 / 0
Регистрация: 15.03.2011
Сообщений: 35
07.06.2011, 04:47     Ошибка в WHILE при обработке массива
Проблема в коде:
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
#include <fstream.h>
#include <iostream.h>
#include <conio.h>
#include <vcl.h>
#include <windows.h>
#include <locale.h>
 
void main ()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        const N=3; int i, n=0; char inst[15];
        struct student { char familiy[15]; char ima[15]; char instrument[15];
                         char konkursi[20]; int god;
                             };
cout<<"БАЗА ДАННЫХ СТУДЕНТОВ\n";
student stud;
system ("cls");
ifstream fin("student.txt", ios::in);
if (!fin)
              { printf("База пуста!\n\n\Введите колличество студентов: ");
                scanf("%d",&N);
                student stud[N];
                for(i=0;i<N;i++)
                  { n=n+1;
                    printf("\n%d студент",n);
                    printf("\nФамилия:"); scanf("%s",&stud[i].familiy);
                    printf("Имя:"); scanf("%s", &stud[i].ima);
                    printf("Инструмент:") ; scanf("%s",&stud[i].instrument);
                    printf("Конкурсы:"); scanf("%s",&stud[i].konkursi);
                    printf("Год приема:"); scanf("%d",&stud[i].god);
              };
                int i=0;
                printf("\nУкажите инструмент:"); scanf("%s",&inst);
                while (i<N && stud.instrument==inst)
                    {
                            printf("\n%s",stud[i].familiy);
                        printf("\n%s",stud[i].ima);
                        printf("\n%s",stud[i].instrument);
                        printf("\n%s",stud[i].konkursi);
                        printf("\n%d",stud[i].god);
                                i=i+1;
                    }   }
else
                {
                int n=1;
                printf("\nУкажите инструмент:"); scanf("%s",&inst);
                while (!fin.eof() && stud.instrument==inst)
                {        fin>>stud.familiy>>stud.ima>>stud.instrument>>stud.konkursi>>stud.god;
                        cout<<stud.familiy;
                        cout<<'|'<<'\t'<<stud.ima;
                        cout<<'|'<<'\t'<<stud.instrument;
                        cout<<"| "<<stud.konkursi;
                        cout<<" | "<<stud.god;
                        n++;
                }
                fin.close();
        }      
getch ();
}

Ругается на строку
C++
1
while (!fin.eof() && stud.instrument==inst)
structure required on left side of . or .*

В чем закралась ошибка?
Я пытаюсь ему задать условие на перебор цикла,
при выполнеии двух условий i<N и значение в массиве stud.instrument равно введенному ранее inst

P.S.
Компилирую в Borland C++ Builder 5.0
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru