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

Задачи для тренировки и лучшего понимания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возможно переписать программу? http://www.cyberforum.ru/cpp/thread153534.html
Есть программа Upgrade UA.exe хочу запустить ее на windows mobile 6. Возможно ли ее переписать.
C++ scanf Пусть нужно читать из текста слова, пропуская все символы, кроме a-z и A-Z. То есть из текста Hello, world! ololo O_o получить только Hello world ololo O o Меня интересует, можно ли это сделать с помощью одной лишь только функции scanf. Она, насколько я понял, позволяет немного использовать регулярные выражения (точно не знаю, они ли это). Так вот, можно ли сделать так, чтобы к примеру... http://www.cyberforum.ru/cpp/thread153153.html
C++ Вернуть stdin в консоль
Допустим я перенаправил поток stdin/stdout в файл с помощью функции freopen. Как заставить его снова работать с консолью? Добавлено через 9 минут Нашел. #include <cstdlib> #include <stdio.h> #include <conio.h> using namespace std;
Прошу помочь.Подключение dll на неуправляемом С/С++ C++
Возникла проблема.Есть рабочая dll, необходимо подключить к CLR приложению. Подключение происходит нормально. Все функции работают нормально кроме одной(хотя dll проверял все работает в обычных Win32 приложениях).Данная функция производит загрузку из файла если файл не найден-возвращает код ошибки,т.е. все нормально.Но если файл находит(путь указан точный) то происходит ошибка исключение...
C++ Не сразу закрывающаяся программа http://www.cyberforum.ru/cpp/thread152799.html
Есть команды в терминале.. вроде telnet или sql, эти программы запускаешь и они остаются открытыми пока не дашь команду, например, quit. Во время работы программы она показывает знак приглашения новой команды ">". Как это можно осуществить в C++?
C++ Парсер на С вопшем есть файл с текстом..... в етом файле есть какие даные(мусор)...и есть дни: Понедельник,Вторник,среда......с етого файла нада вывести ети дни в порядке нахождениэ... ето походу несложная задача,но для новичка сложно.... нужно именно на С а не С++ ... я пока только думал считывать каждую строку в масив и проверять каждый елемент по буквам... подробнее

Показать сообщение отдельно
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
21.03.2011, 22:24     Задачи для тренировки и лучшего понимания
ForEveR
Честно говоря,ничего более толкового в голову не пришло, кроме как сделать функцию-переходник, для которой запрещено выбрасывание исключений. вышло в самом грубом приближении так
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
template <typename T> 
class Some_class
{
public:
   Some_class(T _arg = T());
   Some_class& operator =(Some_class const & other);
 
   void swap(Some_class & other) throw();
private:
   T arg;
};
 
template <typename T>
Some_class<T>::Some_class(T _arg)
    {
    arg = _arg;
    }
 
template <typename T>
void Some_class<T>::swap(Some_class<T> & other) throw()
    {
    T temp = other.arg;
    other.arg = this->arg;
    this->arg = temp;
    }
 
template <typename T>
Some_class<T> & Some_class<T>::operator=(Some_class const & other)
    {
    Some_class<T> temp(other);
 
    swap(temp);
 
    return *this;
    }
 
int main()
    {
    Some_class<int> A(10),B;
    B = A;
    }
Тогда вроде как удается избежать возможных проблем с исключениями, если "задавить" их таким ходом.


Добавлено через 23 часа 20 минут
Also 2ForEveR

Погорячился я с такой реализацией )
Вообще говоря, насколько я понимаю строго безопасную обработку исключений, при случае чего плохого, состояние объекта должно остаться неизменным, то есть в случае чего нужно откатить все изменения без порчи ссылок и прочего, я правильно понимаю?
Тогда если действовать в соответствии с таким принципом, то приходится извернуться со ссылками и накрутить нечто с std::auto_ptr, так как ни один его член не может выкинуть исключение и вообще семантика как раз располагает к пользованию безопасных указателей
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
template <typename T> 
class Some_class
    {
    public:
        Some_class();
        Some_class(Some_class<T> const & other);
        Some_class& operator =(Some_class const & other);
 
        void swap(Some_class & other) throw();
    private:
        std::auto_ptr<T> arg;
    };
 
template <typename T>
Some_class<T>::Some_class()
    : arg(new T())
    {
    }
 
template <typename T>
Some_class<T>::Some_class(Some_class<T> const & other)
    : arg(new T(*other.arg))
    {
    }
 
template <typename T>
void Some_class<T>::swap(Some_class<T> & other) throw()
    {
    std::auto_ptr<T> temp(arg);
    arg = other.arg;
    other.arg = temp;
    }
 
template <typename T>
Some_class<T> & Some_class<T>::operator=(Some_class const & other)
    {
    Some_class<T> temp(other);
 
    swap(temp);
 
    return *this;
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru