Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 01:23   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию абстракция текста ошибка студии [C++]

Программа должна добавлять строки, удалять одну сроку, очищать все строки, подсчитывать длину самой длинной строки.
Но после выполнения программы, после того как вожу исходные данные которая запрашивает программа моя и нажимаю enter, компилятор выбивает такую ошибку


Код программы:

Код:
//text.h
#include "Row.h"
 
const int countRows = 100;
 
class Texts
{
public:
        Texts();
        void addRows(string str);
        void removeAll();
        void removeRow(int numberRow);
        string getMaxLenght();
        string ToString();
 
        Row texte[100];
        int amountRows;
};

//Row.h
#include <string>
#include <iostream>
using namespace std;
class Row
{
public:
    string dataRow;
        Row();
        Row(string);
};

//Row.cpp
#include "stdafx.h"
#include "Row.h"
#include <string>


Row::Row()
{
}

Row::Row(string str)
{
    string dataRow = str;
}

//.cpp файл
#include "stdafx.h"
#include "text.h"
 
Texts::Texts()
{
}



void Texts::addRows(string str)
{
    texte[amountRows].dataRow = str;
    amountRows++;
}
 
void Texts::removeRow(int numberRow)
{
        for (int i = numberRow; i < (countRows - 1); i++)
        {
                texte[i] = texte[i+1];
        }
        texte[countRows - 1].dataRow = "";
        amountRows--;
}
 
void Texts::removeAll()
{
        for (int i = 0; i<countRows; i++)
        {
                texte[i].dataRow ="";
        }
        amountRows = 0;
}
 
string Texts::getMaxLenght()
{        
    string max = texte[0].dataRow;
        for (int i = 1; i < amountRows; i++)
        {
                if (texte[i].dataRow.length() > max.length())
                {
                        max = texte[i].dataRow;
                }
        }
    return max;
}
 
string Texts::ToString()
{
        string str = "";
        for (int i = 0; i < amountRows; i++)
        {
                str = str + " " + texte[i].dataRow;
        }
 
        return str;
}

//main.cpp
#pragma once
#include "text.h"
#include "stdafx.h"
int main()
{
    cout<<"Введите количество строчек: ";
    int countRow;
    cin>>countRow;
    cout<<"Введите строчку: ";
    Texts objText;
    string temp;
    
    for (int i=0; i < countRow; i++)
    {
        cin>>temp;
        objText.addRows(temp);
    }

    cout<<"----\n\n"<<objText.ToString()<<"\n----\n";

    cout<<"\nВведите номер строчки: ";
    int numberOfRow;
    cin>>numberOfRow;

    if (numberOfRow < countRow)
    {
        objText.removeRow(numberOfRow - 1);
    }

    cout<<"----\n\n"<<objText.ToString()<<"\n----\n";
    
    cout<<"\nСамая длинная строчка в тексте: "<<objText.getMaxLenght();

    cout<<"\nОчистка текста.";
    objText.removeAll();
    cout<<"----\n\n"<<objText.ToString()<<"\n----\n";
    return 0;
}
ArniLand вне форума Ответить с цитированием
Старый 30.03.2010, 01:28   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

а где инициализация amountRows?
netrino вне форума Ответить с цитированием
Старый 30.03.2010, 15:48   #3
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию

подскажите пожалуйста в каком месте и как правильно инициализировать в моей программе amountRows?
ArniLand вне форума Ответить с цитированием
Старый 30.03.2010, 18:05   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

В конструкторе, ясный перец. Инициализировать нулём.
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Абстракция текста - другая ошибка[C++] ArniLand Общие вопросы C/C++ 1 29.03.2010 22:25
Класс контейнер - абстракция текста [C++] ArniLand Общие вопросы C/C++ 4 29.03.2010 15:02
подключение библиотек в 2008 студии lacost Общие вопросы C/C++ 1 27.09.2009 12:00
Не компилится проект на студии 2005 prikolist Общие вопросы C/C++ 31 15.06.2009 19:18