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

Работа с файлами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Линейный однонаправленный список http://www.cyberforum.ru/cpp-beginners/thread646904.html
всем доброго времени не получается создать функцию слияния двух списков методом расчесок( допустим первый список 1 3 5 второй 2 4 6 а после слияния получилось 1 2 3 4 5 6) вот код программы посмотрите пожалуйста и подскажите что не так? функция слияние называется сливание #include<conio.h> #include<stdio.h> #include<stdlib.h> typedef struct Node { //int ch; int it;
C++ Даны два натуральных числа a, b. Найти разность и произведение суммы цифр этих чисел Даны два натуральных числа a, b. Найти разность и произведение суммы цифр этих чисел. Вычисление суммы цифр числа оформить в виде функции. http://www.cyberforum.ru/cpp-beginners/thread646898.html
C++ Подскажите что означает /=
Начал читать книгу для начинающих по с++, в одном из примеров встретил код вида Mxx/=N; Mxy/=N; My/=N; Mx/=N; Наверное, /= что-то настолько очевидное, что авторы забыли про него упоминуть.
Хеш строки C++
Как можно получить хеш строки на C++ с использованием только стандартных библиотек? Думал так: unsigned long long hash(char *str,size_t size) { int seed = 31 //abcd... unsigned long long result = 0; for (size_t idx=0;idx<size;idx++) { result = result + pow(double(seed),double(i))*s; } return result; }
C++ Проверка типа (typeid) http://www.cyberforum.ru/cpp-beginners/thread646859.html
Подскажите пожалуйста как можно правильно реализовать такую вещь: если тип переменной и == int то.... нагуглил функцию: typeid(i).name(); которая выводит тип переменной, написал: #include "stdafx.h" #include <conio.h> #include <typeinfo.h> #include <iostream>
C++ Как проверить правильно ли ты создал дистрактор сабжж ??? подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
05.09.2012, 11:26     Работа с файлами
в связи с исключениями и необходимостью освобождения ресурсов решил оформить в класс
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
#include <iostream>
#include <fstream>
#include <stdexcept>
 
class Processor
{
public:
    Processor() : p(0){}
    void Run()
    {
        ifs.open("in.txt");
        if(ifs.is_open())
        {
            int size(0);
            ifs >> size;
            if(size <= 0) throw std::invalid_argument("size <= 0");
            int* p = new int[size], i, j, tmp;
            for(i = 0; ifs >> p[i] && i < size; ++i)
            ;
            if(i < size) throw std::invalid_argument("i < size");
            for(i = 0; i < size; ++i) // сортировка
            {
                tmp = p[i];
                for(j = i - 1; j >= 0 && p[j] < tmp; --j)
                {
                    p[j + 1] = p[j];
                }
                p[j + 1] = tmp;
            }
            for(i = 0; i < size; ++i)
            {
                std::cout << p[i] << "  ";
 
            }
            std::cout << "\np size is: " << size * sizeof(*p) << std::endl;
            ofs.open("out.binary", std::ios::binary);
            if(ofs.is_open())
            {
                ofs.write(reinterpret_cast<const char*>(p), size * sizeof(*p));
                if(ofs.fail())
                    std::cerr << "\nwrite() failed" << std::endl;
                ofs.close();
            }
            else std::cerr << "Unable to open output file" << std::endl;
            ifs.close();
        }
        else std::cerr << "Unable to open input file" << std::endl;
    }
    ~Processor()
    {
        std::cout << "\nDestructor" << std::endl;
        delete[] p;
        p = 0;
        ifs.close();
        ofs.close();
    }
private:
    std::ifstream ifs;
    std::ofstream ofs;
    int* p;
    Processor(Processor const&);
    Processor& operator=(Processor const&);
};
 
int main()
{
    try
    {
        Processor pr;
        pr.Run();
    }
    catch(std::exception const& e)
    {
        std::cerr << "Exception: " << e.what() << std::endl;
    }
    return 0;
}
 
Текущее время: 19:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru