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

R6010 - не понимаю, почему и что VS2010 хочет - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.75
Devochka
 Аватар для Devochka
31 / 19 / 1
Регистрация: 07.10.2011
Сообщений: 98
27.03.2012, 13:48     R6010 - не понимаю, почему и что VS2010 хочет #1
Разработать класс String: конструктор по умолчанию, позволяющий вводить строку 80 символов;
конструктор, позволяющий вводить строку произвольного размера;
конструктор, создающий строку и инициализирующий ее строкой, полученной от пользователя.
Класс должен содержать методы для ввода строк с клавиатуры и вывода строк на экран.

Задание выше, а это моя реализация. При компиляции выдает ошибку : R6010 - abort() has been called. Не понимаю, почему и где ошибка. Никаких errors и warnings не высвечивается.

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
#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
 
class TString
{
    char *str;
    int length;
 
public:
    
    TString () // конструктор по умолчанию, создает строку в 80 символов
    {
        str = new char [80];
    }
    
    TString (int len) // конструктор, который создаст строку нужного размера
    {
        str = new char [len];
    }
 
    TString (char *S) // конструктор, который 
    {
        str = new char [strlen(S) + 1]; // создаст строку и запишет в нее пользовательскую
        strcpy (str, S);
    }
 
    TString (const TString &st) // конструктор копирования
    {
        str = new char [st.length + 1];
        strcpy (str, st.str);
    }
    
    ~TString ()
    {
        delete [] str;
    }
 
    void inputString ()
    {
        cin.getline (str, length);
    }
 
    void outString ()
    {
        cout << str << endl;
    }
};
 
int main ()
{
    TString s1; // по умолчанию
    cout << "Enter your string :" << endl;
    s1.inputString();
    s1.outString();
    
    int c;
    cout << "Enter your string's length :" << endl;
    cin >> c;
    TString s2 (c); // с заданной длиной
    s2.inputString();
    s2.outString();
 
    char *my_str;
    int d;
    cout << "Enter your string's length :" << endl;
    cin >> d;
    cout << "Enter your string :" << endl;
    cin.getline (my_str, d);
    TString s3 (my_str); // с пользовательской строкой
    s3.outString();
        
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 13:48     R6010 - не понимаю, почему и что VS2010 хочет
Посмотрите здесь:

C++ не понимаю-почему не сравнивает?
C++ да я не знаток но все таки: не понимаю почему ругается на cout
Не компилируется,не понимаю,почему C++
Выдает ошибку, не понимаю почему! C++
C++ Не понимаю, почему не работает стандартная функция strlen
C++ Не понимаю почему не выводит acos!
C++ Не понимаю, что не так, почему не работает
C++ не понимаю почему цикл не заканчивается

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
27.03.2012, 14:38     R6010 - не понимаю, почему и что VS2010 хочет #2
трассировку хоть делали? вылетает на 71ой строке, строка s1 пустая, пройдитесь отладчиком

Добавлено через 56 секунд
C++
1
void inputString () { cin.getline (str, length); }
чему равно length строки s1? ничему!
Devochka
 Аватар для Devochka
31 / 19 / 1
Регистрация: 07.10.2011
Сообщений: 98
27.03.2012, 14:54  [ТС]     R6010 - не понимаю, почему и что VS2010 хочет #3
Спасибо! Уже сама разобралась. Не умею работать отладчиком, приходится головой.
Yandex
Объявления
27.03.2012, 14:54     R6010 - не понимаю, почему и что VS2010 хочет
Ответ Создать тему
Опции темы

Текущее время: 21:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru