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

Класс и чтение из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти среднее арифметическое и геометрическое двух чисел http://www.cyberforum.ru/cpp-beginners/thread272670.html
Помогите, пожалуйста. Известно два целых числа, найти среднее арифметическое и геометрическое этих чисел. Вот пытался сделать, но не получилось... (( #include <windows.h> #include <iostream>...
C++ Ввод\вывод из файла Подскажите в чем ошибка при чтении из файла и как правильно? #include "stdafx.h" #include <iostream> #include <string> #include <fstream> using namespace std; int _tmain(int argc, _TCHAR*... http://www.cyberforum.ru/cpp-beginners/thread272655.html
error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" C++
Добрый вечер! Прошу помочь, так как сам только начал изучать СПП (поэтому отнеситесь с пониманием)). #include <stdio.h> #include <iostream> #include <windows.h> using namespace std; //...
C++ Списки С++
все привет вот само задание Создать список слов. Рассортировать список (слова) по их длине. Слова с одинаковой длиной сортировать по двум первым буквам. я сделал всё только что то не могу...
C++ Список файлов в директории http://www.cyberforum.ru/cpp-beginners/thread272622.html
Директория задается с клавиатуры, не получается перекодировать char в wchar_t #include "stdafx.h" #include <iostream> #include<Windows.h> using namespace std;
C++ Косяк с мышью в консольном режиме Для более удобной работы в программе необходимо исспользование мышь. Нашел темки, как описать, все ясно и понятно. Разобрался. Прописал. Все рабоет, но есть один косяк. Он заключается в том, что мышь... подробнее

Показать сообщение отдельно
muskos
6 / 6 / 0
Регистрация: 06.03.2012
Сообщений: 82
01.05.2012, 19:55
Немного старо, если кто наткнётся привожу код: весь ввод проверяется на правильность, всё разделено по функциям, без шаблонов.

MAIN.CPP

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
#include "in.h"
#include <iostream>
using namespace std;
void main()
{   
    while(true)
    {
        int n = 0;
        Reader read;
        int flag = 0;
        do
        {
            try
            {
                flag = 0;
                cout << "Begin?" << "\n 0 - yes; 1 - no : ";
                n = read.check_int();
            }catch(int)
            {
                flag = 1;
                cout << "Enter 1 or 0! ";
            }
        }while(flag == 1);
        if (n == 1)
        {
                break;
        }else 
        {
            if( n != 0)
            {
                cout << "Enter 1 or 0! " << endl;
            }
        } // тут либо получили разрешение на продолжение, либо вышли
        read.name_file();
        int index;
        do
        {
            try
            {
                flag = 0;
                cout << "Enter [index]: ";
                index = read.check_int();
            }catch(int)
            {
                flag = 1;
                cout << "Error! Enter int!" << endl;
            }
        }while(flag == 1);
        //cout << index;
        cout << read[index];
        read.file_close();
    } // цикл while
}
FUNC.CPP - описание функций

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
#include "in.h"
#include <iostream>
#include <string>
using namespace std;
int Reader :: check_int()
{
    int i;
    char ch[10];
    int flag = 0;
    cin >> i;
    flag = cin.rdstate(); // чтение потока
    if (flag& ios :: failbit)
    {
        cin.clear();
        cin >> ch;
        throw 1;
    }
    return i;
}
char Reader :: operator[](int n)
{   
    in.seekg(0, ios :: end);
    if (n > in.tellg())
    {
        cout << "Index NOT found" << endl;
        return 0;
    }else
    {
        in.seekg(n, ios ::beg);
        in.read(&tmp , 1);
        cout << tmp << endl;
    }
    return tmp;
}
void Reader :: name_file()
{
    string file_name;
    cout << "Enter name of FILE: ";
    cin >> file_name;
    in.open(file_name, ios :: in);// | ios :: binary);
    if(in.is_open())
    {
        cout << "File OPEN" << endl;
    }else 
    {
        cout << "File NOT OPEN" << endl;
    }
}
void Reader :: file_close()
{
    in.close();
}
IN.H - объявления

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
#include <iostream>
using namespace std;
class Reader
{
    public:
        char operator [](int n);
        void name_file();
        int check_int();
        void file_close();
private:
    ifstream in;
    char tmp;
};
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru