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

Ошибка в главной функции программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ запуск одной программы из другой http://www.cyberforum.ru/cpp-beginners/thread318815.html
Здравствуйте для начала :) Задача казалась весьма простой, мне нужно запустить одну программу используя программку которую сам написал. Для это я провол 2 функции WinExec и system. И всё было хорошо, пока я записывал путь к программе вручную, но вот когда я пытаюсь передать уже имеющийся путь (который ввел пользователь) результат нулевой. Ничего не происходит... Может кто сможет подсказать...
C++ строка "создать окно" . Создала программу, сохранила, когда пытаюсь запустить строка "CreateWindow" высвечивается красным. Помогите, что делать?Срочно надо! http://www.cyberforum.ru/cpp-beginners/thread318789.html
Какая версия Microsoft Visual C++ совсестима с windows 7 ? C++
Какая версия Microsoft Visual C++ совсестима с windows 7 ? И нужно ли качать обновления на семёрку в связи с установкой программы, скажите пожалуйста.
С++ ВАЖНО. тяжело C++
Составить подпpогpамму, котоpая читает постpочно текст дpугой пpогpаммы на языке Паскаль (вводится с клавиатуpы), содеpжащий не более 10 стpок (стpока - не более 80 символов), обнаpуживает комментаpии и печатает их.
C++ Массив в С++ http://www.cyberforum.ru/cpp-beginners/thread318756.html
Задан двухмеpный массив, содеpжащий n стpок и m столбцов. Получить из него новый массив той же pазмеpности путем деления каждого элемента исходного массива на сумму элементов стpоки, в котоpой он находится.
C++ Массив в С++ ВАЖНО Заданы два одномеpных массива X и Y, содеpжащие кооpдинаты N точек на плоскости. Опpеделить, сколько точек попадет внутpь окpужности с центpом в точке XO, YO и pадиусом R. подробнее

Показать сообщение отдельно
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
13.06.2011, 18:54     Ошибка в главной функции программы
Вот пример, вроде работает, если я правильно понял задание
ПС: в первой функции которую я выложил ошибка!

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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
 
 
struct WordInfo {
    char *p;        // ссылка на сл.
    int l;          // длина сл.
};
 
 
class Text {
    char *buf;
    int size;
public:
    Text();
    Text(char *s);
    ~Text() { delete [] buf; };
    Text &operator=(Text &txt);
    Text &operator=(char *s);
    void Show();
    void Sort();
 
};
 
void Text::Show() {
    cout << buf << endl;
}
 
Text::Text() {
    size = 1;
    try {
        buf = new char[size];
    } catch (bad_alloc xa) {
        cout << "Ошибка выбеления памяти\n";
        exit(1);
    }
    buf[0] = '\0';
}
 
Text::Text(char *s) {
    size = strlen(s) + 1;
    try {
        buf = new char[size];
    } catch (bad_alloc xa) {
        cout << "Ошибка выбеления памяти\n";
        exit(1);
    }
    strcpy(buf, s);
}
 
Text& Text::operator=(Text &txt) {
    if (txt.size > size) {
        delete [] buf;
        try {
            buf = new char[txt.size];
        } catch (bad_alloc xa) {
            cout << "Ошибка выбеления памяти\n";
            exit(1);
        }
        size = txt.size;
    }
    strcpy(buf, txt.buf);
 
    return *this;
}
 
Text& Text::operator=(char *s) {
    int sz = strlen(s) + 1;
 
    if (size < sz) {
        delete [] buf;
        try {
            buf = new char[sz];
        } catch (bad_alloc xa) {
            cout << "Ошибка выбеления памяти\n";
            exit(1);
        }
        size = sz;
    }
    strcpy(buf, s);
    return *this;
}
 
 
 
void Text::Sort() {
    char *p;
    int count; // кол-во слов
    WordInfo wi[30]; // резерв. под 30 слов
    WordInfo tmp_wi;
    count = 0; // пока их 0
    char *dst;
 
    p = buf;
    for (;;) {
        while (*p && *p == ' ') p++; // пропускаем пробелы
        if (*p)
            wi[count].p = p; // начало слова
        else
          break; // все слова найдены
        while (*p && *p != ' ') p++;
        wi[count].l = p - wi[count].p; // размер слова в символах
        count++;
    }
    // сортировка мет. пуз. по длине слов
    for (int x = count-1; x > 0; x--)
        for (int y = 0; y < x; y++) {
            // короткие слова влево длинные вправо
            if (wi[y].l > wi[y+1].l) {
                tmp_wi  = wi[y+1];
                wi[y+1] = wi[y];
                wi[y]   = tmp_wi;
            }
        }
    try {
       dst = new char[size];
    } catch (bad_alloc xa) {
        cout << "Ошибка выбеления памяти\n";
        exit(1);
    }
    p = dst;
    for (int i = 0; i < count; i++) {
        memcpy(p, wi[i].p, wi[i].l);
        if (i < count - 1) {
            p[wi[i].l] = ' '; // вставляем разд. между слов
            p += wi[i].l + 1;
        }
        else
            p[wi[i].l] = '\0'; // иначе конец строки
    }
    strcpy(buf, dst);
    delete [] dst;
}
 
int main()
{
    Text A;
    
    A = "This is my program I like C++";
    
    Text B("VeryLongWord Hello People");
 
    A.Show(); B.Show();
    A.Sort(); B.Sort();
    cout << endl;
    A.Show(); B.Show();
    return 0;
}
 
Текущее время: 00:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru