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

Ошибка в коде - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ std::cin & switch case http://www.cyberforum.ru/cpp-beginners/thread607855.html
Всем привет. Вообщем проблема такая: while(val) { int choice; std::cin >> choice; switch(choice) { case 1: break;
C++ «Комплексные числа» Программа, которая позволяет выбрать одну или несколько точек на плоскости с помощью мыши. Для каждой точки прорисовывается конформное отображение КЧ и на экран выводится комплексное число в алгебраической форме. В случае если заданы две точки, пользователю предлагается выполнить сложение и/или вычитание. Класс дополнить методами, выполняющими базовые операции над КЧ: сложение, вычитание.... http://www.cyberforum.ru/cpp-beginners/thread607847.html
Pacman консольный C++
Переписывал прогу пакмена из этого поста http://www.cyberforum.ru/csharp-beginners/thread430592.html, ради самообучения. В визуал студио все хорошо работает а в нетбианс под линуксом ввожу pipez а на выходе pipe>0pip=0pi>0p=0>0 (это если без слип) а если с ним так вообще все пропадает пару раз ентер нажмеш и она вылезет. думаю в очистке экрана что-то не так. подскажите // 123.cpp : Defines the...
C++ Чтение файла (найти количество пассажиров и вес багажа)
Здраствуйте, решал задачу тут. Не могли бы вы помочь с одним моментом: при чтении файла (текстового), нужно найти количество пассажиров вес багажа которых превышает 30 кг. С чтением разобрался а вот с остальным нет. printf("Vvedite nazvanie faila: "); scanf("%s", file_name); ifstream in(file_name); char c; while (!in.eof() && in.get(c)) cout << c;
C++ List и Set http://www.cyberforum.ru/cpp-beginners/thread607797.html
В общем у нас есть отрезок от 1 до X. Отсортировать этот отрезок, вида: (1,х,2,х-1,...). Заполнить этой последовательностью list и set. И найти в listе и sete элементы делящиеся на 100 или 100-тые элементы( сам задание не понял если честно). Ну и замерить время поиска этих элементов и сравнить естественно. Теперь вопросы: Как заполнить list? пробовал что-то типо этого: list.insert(n), ругается....
C++ Составить описание класса одномерных массивов строк Составить описание класса одномерных массивов строк,каждая строка которых задается длиной и указателем на выделенную для нее память. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов,... подробнее

Показать сообщение отдельно
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
17.06.2012, 20:00     Ошибка в коде
Цитата Сообщение от No10 Посмотреть сообщение
C++
1
2
friend ostream operator<< (ostream &, const String &);
friend istream operator>> (istream &, String &);
C++
1
2
friend ostream& operator<< (ostream&, const String&);
friend istream& operator>> (istream&, String&);
код
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#include <iostream>
#include <iomanip>
#include <string.h>
#include <assert.h>
#include <windows.h>
using namespace std;
 
class String 
{
public:
    friend ostream& operator<< (ostream &, const String &);
    friend istream& operator>> (istream &, String &);
    String(const char * = "");
    String(const String &);
    ~String();
    const String &operator=(const String &);
    String &operator+=(const String &); // сцепление или конкатенация
    int operator!() const;
    int operator== (const String &) const;
    int operator!= (const String &) const;
    int operator< (const String &) const;
    int operator> (const String &) const;
    int operator<= (const String &) const;
    int operator>= (const String &) const;
    char &operator[](int);
    String operator()(int, int);
    int getLenght() const;
private:
    char *sPtr;
    int lenght;
};
 
char bufRus[256];
char* Rus(char* text) 
{   
    CharToOemA(text, bufRus);
    return bufRus;
}
 
String::String(const char *s)
{
    cout << Rus("Конструктор преобразования: ") << s << endl;
    lenght = strlen(s);
    sPtr = new char[lenght + 1];
    assert(sPtr != 0);
    strcpy(sPtr, s);
}
 
String::~String()
{
    cout << Rus("Деструктор: ") << sPtr << endl;
    delete [] sPtr;
}
 
String::String( const String& s ):
    lenght( s.lenght ), sPtr( new char[lenght] )
{
    strcpy( sPtr, s.sPtr );
}
 
const String &String::operator=(const String &right)
{
    cout << Rus("Вызов operator=") << endl;
 
    if (&right != this) {
        delete [] sPtr;
        lenght = right.lenght;
        sPtr = new char[lenght + 1];
        assert(sPtr != 0);
        strcpy(sPtr, right.sPtr);
    }
    else { cout << Rus("Попытка самоприсваивания String.") << endl; }
 
    return *this;
}
 
String &String::operator+=(const String &right)
{
    char *tempPtr = sPtr;
    lenght += right.lenght;
    sPtr = new char[lenght + 1];
    assert(sPtr != 0);
    strcpy(sPtr, tempPtr);
    strcat(sPtr, right.sPtr);
    delete [] tempPtr;
 
    return *this;
}
 
int String::operator!() const { return lenght == 0;}
 
int String::operator== (const String &right) const
{
    return strcmp(sPtr, right.sPtr) == 0;
}
 
int String::operator!=(const String &right) const
{
    return strcmp(sPtr, right.sPtr) != 0;
}
 
int String::operator< (const String &right) const
{
    return strcmp(sPtr, right.sPtr) < 0;
}
 
int String::operator> (const String &right) const
{
    return strcmp(sPtr, right.sPtr) > 0;
}
 
int String::operator<= (const String &right) const
{
    return strcmp(sPtr, right.sPtr) <= 0;
}
 
int String::operator>= (const String &right) const
{
    return strcmp(sPtr, right.sPtr) >= 0;
}
 
char &String::operator[] (int subscript)
{
    assert(subscript >= 0 && subscript < lenght);
    return sPtr[subscript];
}
 
String String::operator() (int index, int subLenght)
{
    assert(index >= 0 && index < lenght && subLenght >= 0);
    String sub;
    if ((subLenght == 0) || (index + subLenght > lenght))
        sub.lenght = lenght - index + 1;
    else
        sub.lenght = subLenght + 1;
 
    delete sub.sPtr;
    sub.sPtr = new char [sub.lenght];
    assert(sub.sPtr != 0);
 
    strncpy(sub.sPtr, &sPtr[index], sub.lenght);
    sub.sPtr[sub.lenght] = '\0';
 
    return sub;
}
 
int String::getLenght() const { return lenght; }
 
ostream& operator<< (ostream &output, const String &s)
{
    output << s.sPtr;
    return output;
}
 
istream& operator>> (istream &input, String &s)
{
    char temp[100];
    input >> setw(100) >> temp;
    s = temp;
    return input;
}
 
int main()
{
    String s1("pozdravlyaem"), s2(" s dnem rozdenia"), s3("");
    return 0;
}
 
Текущее время: 21:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru