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

Изменить программу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамический массив (классов) http://www.cyberforum.ru/cpp-beginners/thread445955.html
Вот такой вопрос, почему так? #include <iostream> #include <string> using namespace std; class primer { public: primer (int _number, char _s1)
C++ Динамическая строка и перегрузка операций Всем доброго дня!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!! Вот сама задача!!!! 1. Длина L четная, то выделяется подстрока со второго пробела. http://www.cyberforum.ru/cpp-beginners/thread445947.html
Создать класс, для работы с динамическими векторами C++
Создать класс, для работы с динамическими векторами, длины n. В класс реализовать операцию вычитания векторов ввода и вывода в поток. Проверить работу соответствующих операций.
C++ Задача на функции
Помогите разобраться с задачей. Задание. Описать процедуру Minmax (A, B), записывающую в переменную А минимальное из значений А и В, а в переменную В - максимальное из этих значений (А и В - вещественные параметры, являющиеся одновременно входными и выходными). Использую четыре вызова этой процедуры, найти минимальное и максимальное из чисел А, B, C, D. Я понимаю, что написанная мной...
C++ Отлов нескольких одновременно нажатых клавиш http://www.cyberforum.ru/cpp-beginners/thread445887.html
Всем доброго времени суток. Подскажите как одновременно отловить несколько клавиш, попробовал это проделать с ctrl + shift и правой + левой кнопками мыши, получилось конечно, но не очень корректно работает. Подскажите где ошибся int key; TCHAR str; key=wParam; switch(msg) {
C++ нужно перевести математическую формулу у формулу нва с++ http://i070.***********/1202/4b/d6d4496e5067t.jpg подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
14.02.2012, 17:33
Цитата Сообщение от Orion6767 Посмотреть сообщение
zss2, что-то не то. Условия со скобками не прописаны, программа толком нечего не делает.
Добавлено через 2 минуты
HELP!
- решил переделать под динамический realloc в плюсах - вышло как по мне неплохо
Листинг TString.h
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
#include <iostream>
#include <string>
using namespace std;
 
class String
{
private:
    char * m_Str;
    long uLength;
    //ÄîìîðîùåГ*Г*ûé Г*Г*Г*ëîã ÑèøГ*îãî realloc
    //ÍåïëîõГ*Гї ГўГҐГ№ГЁГ·ГЄГ* âûøëГ*
    char * alloc(char * ptr, long size);
public:
    //Âñå 3 ГІГЁГЇГ* ГЄГ®Г*ñòðóêòîðîâ
    String()
    {
        m_Str = new char[1 + (uLength = 0)];
        if(!m_Str)
            cout<<"Allocation memory error\n";
    }
    String(const char * srs)
    {
        m_Str = new char[1 + (uLength = strlen(srs))];
        if(!m_Str)
            cout<<"Allocation memory error\n";
    }
    String(String & srs)
    {
        if((m_Str = alloc(m_Str, srs.uLength + 1)))
        if(!strncpy(m_Str,srs.m_Str,srs.uLength + 1))
            cout<<"Error moving memory\n";
        else
            uLength = srs.uLength;
    }
    //Äåñòðóêòîð
    ~String()
    {
        uLength = 0;
        if(m_Str)
            delete [] m_Str;
    }
    //Ìåòîäû
    String &Set();
    char *  Get();
    void  Print();
    //ÏåðåãðóæåГ*Г*ûå îïåðГ*òîðû
    String & operator=(String &srs);
};
 
char * String::alloc(char * ptr, long size)
{
    char * ret;
    if(0 < size)
    {
        ret = new char[size + 1];
        if(!strncpy(ret,ptr,size))
            cout<<"Error moving memory\n";
        else
            delete [] ptr;
    }
    else
        cout<<"Cant allocate memory of zero size\n";
    return (ptr = ret);
}
 
String&
String::Set()
{
    String str;
    cout<<"Enter string :\n";
    while((m_Str[uLength] = cin.get()) != '\n')
    {
        m_Str = alloc
                    (
                        m_Str, 
                        (1 + (uLength = uLength + 1))
                    );
    }
    m_Str[uLength] = '\0';
    return *this;
}
 
char *
String::Get()
{
    return (*this).m_Str;
}
 
void
String::Print()
{
    if(!m_Str)
        cout<<"Can't print not initialized string\n";
    else
        cout<<m_Str<<endl;
}
 
String&
String ::operator= (String &srs)
{
    if((m_Str = alloc(m_Str, srs.uLength + 1)))
    if(!strncpy(m_Str,srs.m_Str,srs.uLength + 1))
        cout<<"Error moving memory\n";
    else
        uLength = srs.uLength;
    return *this;
}
Листинг 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
#include "TString.h"
#include <fstream>
 
int main ()
{
    String s1, s2;
    s1.Set();
    s2.Set();
    s1 = s2;
    cout<<"First string : ";
    s1.Print();
    ofstream ofs("out.txt");
    if(!ofs)
        cout<<"Error of creation out.txt\n";
    else
    {
        ofs<<"s1 = "<<s1.Get()<<endl
           <<"s2 = "<<s2.Get()<<endl;
        ofs.close();
    }
    system("pause");
    return 0;
}
out.txt
s1 = String No2
s2 = String No2
Миниатюры
Изменить программу  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru