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

выдает много ошибок не могу понять в чем дело ( работа с таблицей) - C++

Восстановить пароль Регистрация
 
diga
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
02.09.2012, 10:31     выдает много ошибок не могу понять в чем дело ( работа с таблицей) #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
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
#include <iostream> 
#include <fstream>  // чтения/записи данных из/в файл
#include <stdio.h>  // поток ввода/вывода для Си
#include <stdlib.h>
#include <string>  //работа со строками
#include <iomanip>  //Реализует инструменты для работы с форматированием вывода
#include <sys\stat.h>  //информация о файле
using namespace std;
 
 
// абстрактный класс таблицы произволного вида
class abstractTable
{
protected:
char fileName[20];// Имя файла
char Name[20];// Фамилия и инициалы
char Result[10];// Массив с результатами посещения и сдачи лабораторных работ
void HeaderC1() //построение шапки таблицы при помощи Си
{
    printf("\n ЪДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДї");
    printf("\n і       F.I.O.         і Lab.# 1 і Lab.# 2 і Lab.# 3 і Lab.# 4 і Lab.# 5 і");
    printf("\n і                      ГДДДДВДДДДЕДДДДВДДДДЕДДДДВДДДДЕДДДДВДДДДЕДДДДВДДДДґ");
    printf("\n і                      і P. і S. і P. і S. і P. і S. і P. і S. і P. і S. і");
} 
void HeaderC2() // построение шапкм таблицы при помощи С++
{
    cout<<endl<<"ЪДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДї";
    cout<<endl<<"і       F.I.O.         і Lab.# 1 і Lab.# 2 і Lab.# 3 і Lab.# 4 і Lab.# 5 і";
    cout<<endl<<"і                      і P. і S. і P. і S. і P. і S. і P. і S. і P. і S. і";
}
int ProverkaC1(FILE *fp) // проверка файла для Си
{
    if(fp == NULL)
    {
        printf(" \n Oshibka otkritiya fayla!\n Press any key...");
        /*_getch(); //функция возвращает код при нажатии любой клавиши*/
        return 0;
    }
    return 1;
}
int ProverkaC2i(ifstream &iFile) // проверка чтения файла в С++
{
    if(!iFile)
    {
        cout<<endl<<"Fayl ne nayden!"<<endl<<"Press any key...";
        cin.get(); //читает символ перевода строки
        return 0;
    }
    return 1;
}
int ProverkaC2o(ofstream &oFile) /* проверка записи в С++, вместо этого можно использовать 
                                 fstream который объединяет первое со вторым*/
{
    if(!oFile)
    {
        cout<<endl<<"Oshibka otkritiya fayla!"<<endl<<"Press any key...";
/*      _getch();//Возвращает код символа нажатой клавиши*/
        return 0;
    }
    return 1;
}
// Пустые виртуальные функции.
virtual void RecordTablC1(char) = 0;// Запись таблицы средствами С
virtual void RecordTablC2(char) = 0;// Запись таблицы средствами С++
virtual void ReadPTablC1(char) = 0;// Чтение таблицы средствами С
virtual void ReadPTablC2(char) = 0;// Чтение таблицы средствами С++
};
class Tabl: public abstractTable //класс таблицы
{
public:
    Tabl(){} //конструктор 
    /*Перегрузки операций помещения в поток и выбор из потока.*/
    friend ofstream& operator << (ofstream &outf, Tabl MyTabl) //объявляем дружественную функцию перегружаем операцию << вывода
    {
        outf << endl << MyTabl.Name << " " << MyTabl.Result;
        return outf;
    }
    // Для чтения из файла.
    friend ifstream& operator >> (ifstream &inf, Tabl &MyTabl)
    {
        inf >> MyTabl.Name >> MyTabl.Result;
        return inf;
    }
    // Для вывода на экран.
    friend ostream &operator << (ostream &out, Tabl MyTabl)
    {
        cout<<endl<<" ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДЕДДДДЕДДДДЕДДДДЕДДДДЕДДДДЕДДДДЕДДДДЕДДДДЕДДДДґ"
        <<endl<<" і"<<setiosflags(ios::left)<<setw(22)<<MyTabl.Name
        <<"і "<<setw(2)<<MyTabl.Result[0]<<"і "<<setw(2)<<MyTabl.Result[1]
        <<"і "<<setw(2)<<MyTabl.Result[2]<<"і "<<setw(2)<<MyTabl.Result[3]
        <<"і "<<setw(2)<<MyTabl.Result[4]<<"і "<<setw(2)<<MyTabl.Result[5]
        <<"і "<<setw(2)<<MyTabl.Result[6]<<"і "<<setw(2)<<MyTabl.Result[7]
        <<"і "<<setw(2)<<MyTabl.Result[8]<<"і "<<setw(2)<<MyTabl.Result[9]
        <<"і ";
        return out;
    }
//Для ввода в таблицу.
friend istream &operator >> (istream &in, Plate &MyTable)
    {
        cout<<endl<<"    F.I.O. studenta:    ";
        in>>MyTable.Name;
        for (int i=0;i<=9;)
        {
            cout<<" Posehenie Lab# "<<i/2+1<<".";
            in>>MyTabl.Result[i];
            while(MyTabl.Result[i]!='-'&&MyTabl.Result[i]!='+') in>>MyTabl.Result[i];
            i++;
            cout<<" Vipolnenie Lab# "<<i/2+1<<".";
            in>>MyTabl.Result[i];
            while(MyTabl.Result[i]!='-'&&MyTabl.Result[i]!='+') in>>MyTabl.Result[i];
            i++;
        }
        return in;
    };
};
выдает ошибки именно с перегрузкой связанной ввода в таблицу, подскажите пожалуйста что у меня там не так? всем Спасибо!

Добавлено через 19 минут
нашел ошибку спасибо, но меня интересует данный цикл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i=0;i<=9;)
        {
            cout<<" Posehenie Lab# "<<i/2+1<<".";
            in>>MyTabl.Result[i];
            while(MyTabl.Result[i]!='-'&&MyTabl.Result[i]!='+') in>>MyTabl.Result[i];
            i++;
            cout<<" Vipolnenie Lab# "<<i/2+1<<".";
            in>>MyTabl.Result[i];
            while(MyTabl.Result[i]!='-'&&MyTabl.Result[i]!='+') in>>MyTabl.Result[i];
            i++;
        }
        return in;
не могли бы подсказать что происходит тут?
Огромное спасибо всем заранее
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2012, 10:31     выдает много ошибок не могу понять в чем дело ( работа с таблицей)
Посмотрите здесь:

C++ Массив: ошибка, не могу понял в чем дело
не могу понять в чем дело C++
C++ Не могу понять чего выдает всегда 0
C++ Вызов перегруженной функции не могу понять в чем дело?
Написал программу, но она что-то не совсем то, выдает, не могу понять в чем проблема C++
C++ Работа с файлами, не могу понять в чем ошибка
Ошибка памяти при выполнении - не могу понять в чём дело C++
Вывод строки. Не могу понять, в чем дело C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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