Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12

Падает приложение при вводе данных в массив

02.02.2017, 12:11. Показов 1641. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак, есть код который компилируется и даже запускается. Но бреблема в том, что как только я ввожу данные в массив, ексешник вылетает и пишет Process exited after 6.689 seconds with return value 3221225725. Так же проверил прогу в дебагере, там он тоже нашел ошибку std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)(). И у меня возникает вопрос, как это фиксить?

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
#include <iostream>
using namespace std;
int N;
string *condOfSys = new string [N];
string *outPut = new string [N];
const string condHotter = "hotter";
const string condHot = "hot";
const string condWarm = "warm";
const string condCold = "cold";
const string condColder = "colder";
bool sysCooler = 0;
bool sysHeater = 0;
int N1; //предыдущий элемент массива
int N2; // предпредыдущий элемент массива
string o1;
string o2;
string o3;
int p = 1;
 
int main()
{
    start:cin >> N;//ввод кол-ва температурных промежутков
    if (N >= 3)//да, это костыль
    {
        cin >> condOfSys [0];
        cin >> condOfSys [1];
        cin >> condOfSys [2];
    }
    else//если сравнивать менее 3 промежутков то фигня получается
    {
    cout << "incorrect input";
    goto start;
    }
    for(int i = 2; i < N; i++)
    {
 
        N1 = i - 1;
        N2 = i - 2;
        if (i > 3)
        o1 = condOfSys [i];
        o2 = condOfSys [N1];
        o3 = condOfSys [N2];
        {
            cin >> condOfSys [i];
        }
        if (o1 == o2 && o2 == o3 && o3 == condHotter )
        {
            if (sysHeater == 1)
            {
                sysCooler = 1;
                sysHeater = 0;
                outPut[p] = "heater off; cooler on";
            }
            else
            {
                sysCooler = 1;
                outPut [p] = "cooler on"; 
            }
        }
        if (o1 == o2 && o2 == o3 && o3 == condHot)
        {
            sysHeater = 0;
            outPut [p] = "heater off";
        }
        if (o1 == o2 && o2 == o3 && o3 == condWarm)
        {
            outPut [p] = "none";
        }
        if (o1 == o2 && o2 == o3 && o3 == condCold)
        {
            sysCooler = 0;
            outPut [p] = "cooler off";
        }
        if (o1 == o2 && o2 == o3 && o3 == condColder)
        {
            if (sysCooler == 1)
            {
                sysCooler = 0;
                sysHeater = 1;
                outPut [p] = "cooler off; heater on";
            }
            else
            {
                sysHeater = 1;
                outPut [p] = "heater on";
            }
        }
        p++;
    }
    p = 1;
    while (p < N)
    {
        cout << outPut[p] << endl;
        p++;
    }
    delete outPut;
    delete condOfSys;
    return 0;
    system("pause");
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2017, 12:11
Ответы с готовыми решениями:

ООП - падает программа при вводе данных
Имеется класс type TKart = class public rooms, etazh : integer; s : Double; adres : string; Constructor Init; ...

Программа падает при вводе значений
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; float ex(int a,int nn); float fi(int mm,int c,float x1); void gram(int...

Программа падает при вводе стажа
помогите доделать программа запускается. но потом что-то слетает при вводе стажа ...

23
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
02.02.2017, 12:25
Цитата Сообщение от Anistr0phy Посмотреть сообщение
я ввожу данные в массив
В Вашей предыдущей теме уже об этой ошибке написали.
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 12:28  [ТС]
Спасибо, не заметил. Но теперь появилась новая проблемма, он не хочет выводит данные, вылетает.
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
02.02.2017, 12:31
Цитата Сообщение от Anistr0phy Посмотреть сообщение
Но теперь появилась новая проблемма
А как старую исправили?
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 12:32  [ТС]
строчку 4 и 5 перемистил после ввода N.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.02.2017, 12:48
Цитата Сообщение от Anistr0phy Посмотреть сообщение
C++
1
2
return 0;
system("pause");
местами поменяйте, либо удалите вообще return 0;
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 12:50  [ТС]
не помогло
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
02.02.2017, 13:08
ZooM-ZooM:
C++
1
2
3
4
5
string *condOfSys = new string [N];
string *outPut = new string [N];
//...
delete outPut;
delete condOfSys;
Может всё-таки delete []?
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 13:11  [ТС]
если Вы имеете в виду
C++
1
delete outPut [];
, то так оно отказывается компилировать.
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
02.02.2017, 13:12
Цитата Сообщение от Anistr0phy Посмотреть сообщение
то так оно отказывается компилировать.
C++
1
2
delete[] outPut;
delete[] condOfSys;
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 13:18  [ТС]
так компилит, но вывод пустой...
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
02.02.2017, 13:34
У Вас выделение памяти в condOfSys и outPut происходит при еще не введенном N.
Так как память не выделена, Вы заносите данные куда попало и естественно в результате получается все что угодно (особенно если будете работать не с Debug, а с Release).

Добавлено через 48 секунд
А ведь Croessmah, Вам уже намекал на проблему.
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 13:36  [ТС]
Цитата Сообщение от SSC Посмотреть сообщение
У Вас выделение памяти в condOfSys и outPut происходит при еще не введенном N.
Так как память не выделена, Вы заносите данные куда попало и естественно в результате получается все что угодно (особенно если будете работать не с Debug, а с Release).

Добавлено через 48 секунд
А ведь Croessmah, Вам уже намекал на проблему.
я уже исправил это, о чем писал выше
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
02.02.2017, 13:38
Цитата Сообщение от Anistr0phy Посмотреть сообщение
так компилит, но вывод пустой...
Смотрите уже алгоритм свой.
Мы без понятия что он должен делать.
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 13:41  [ТС]
прошу прощения что сразу не скинул

 Комментарий модератора 
Anistr0phy, пожалуйста, прочитайте правила форума.
Особое внимание обратите на пункт 5.18.
Условие задачи перепечатайте непосредственно в тело сообщения.
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
02.02.2017, 13:56
Приведите хотя бы исправленный код, а то мы только догадываемся, каждый в меру своей испорченности, что и как Вы там наисправляли.
В операторе
Цитата Сообщение от Anistr0phy Посмотреть сообщение
C++
1
if (o1 == o2 && o2 == o3 && o3 == condHotter )
Вы сравниваете указатели на cтроки или содержимое строк?

Добавлено через 6 минут
Вопрос на засыпку:
где вводятся N строк которые обрабатываются?
0
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 12
02.02.2017, 13:59  [ТС]
Либо я слепой, либо кнопки редактирования нет. А N вводится на 22 строке.
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
#include <iostream>
using namespace std;
int N;
//string *condOfSys = new string [N];
//string *outPut = new string [N];
const string condHotter = "hotter";
const string condHot = "hot";
const string condWarm = "warm";
const string condCold = "cold";
const string condColder = "colder";
bool sysCooler = 0;
bool sysHeater = 0;
int N1; //предыдущий элемент массива
int N2; // предпредыдущий элемент массива
string o1;
string o2;
string o3;
int p = 0;
 
int main()
{
    start:cin >> N;//ввод кол-ва температурных промежутков
    string *condOfSys = new string [N];
    string *outPut = new string [N];
    if (N >= 3)//да, это костыль
    {
        cin >> condOfSys [0];
        cin >> condOfSys [1];
        cin >> condOfSys [2];
    }
    else//если сравнивать менее 3 промежутков то фигня получается
    {
    cout << "incorrect input";
    goto start;
    }
    N--;
    for(int i = 2; i < N; i++)
    {
 
        N1 = i - 1;
        N2 = i - 2;
        if (i >= 3)
        o1 = condOfSys [i];
        o2 = condOfSys [N1];
        o3 = condOfSys [N2];
        {
            cin >> condOfSys [i];
        }
        if (o1 == o2 && o2 == o3 && o3 == condHotter )
        {
            if (sysHeater == 1)
            {
                sysCooler = 1;
                sysHeater = 0;
                outPut[p] = "heater off; cooler on";
            }
            else
            {
                sysCooler = 1;
                outPut [p] = "cooler on"; 
            }
        }
        if (o1 == o2 && o2 == o3 && o3 == condHot)
        {
            sysHeater = 0;
            outPut [p] = "heater off";
        }
        if (o1 == o2 && o2 == o3 && o3 == condWarm)
        {
            outPut [p] = "none";
        }
        if (o1 == o2 && o2 == o3 && o3 == condCold)
        {
            sysCooler = 0;
            outPut [p] = "cooler off";
        }
        if (o1 == o2 && o2 == o3 && o3 == condColder)
        {
            if (sysCooler == 1)
            {
                sysCooler = 0;
                sysHeater = 1;
                outPut [p] = "cooler off; heater on";
            }
            else
            {
                sysHeater = 1;
                outPut [p] = "heater on";
            }
        }
        p++;
    }
    p = 0;
    while (p < N)
    {
        cout << outPut[p] << endl;
        p++;
    }
    delete[] outPut;
    delete[] condOfSys;
    system("pause");
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.02.2017, 14:09
Цитата Сообщение от SSC Посмотреть сообщение
где вводятся N строк которые обрабатываются?
Напомнило
Программа умеет скачивать файлы в N потоков, однако случаи N больше одного пока не поддерживаются
Уже который раз читаю эту фразу, но всё равно не могу сдержать смех.
0
02.02.2017, 14:16

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Уже который раз читаю эту фразу
Так же, как с "любым цветом"? :)

0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
02.02.2017, 14:51
Цитата Сообщение от Anistr0phy Посмотреть сообщение
А N вводится на 22 строке.
Где вводится N видно и без уточняющих вопросов.
Меня интересовало выделенное на рисунке.
Согласно задания Вам надо обрабатывать поток(массив) состояний, так прежде чем поток(массив) обрабатывать, его нужно как-то создать или прочитать.
Миниатюры
Падает приложение при вводе данных в массив  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.02.2017, 14:51
Помогаю со студенческими работами здесь

Как сохранить массив при вводе данных?
Здравствуйте!..Я месяц всего лишь в PHP и вот такой вопрос, я написал класс и к нему объект: require_once __DIR__.'/shablon.php'; ...

Ошибка при вводе данных в двумерный массив через консоль
Здравствуйте. Есть класс, в котором мне надо забить массив данными с клавиатуры и кое-что посчитать using System; namespace...

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

Падает приложение при чтении txt
при вызове метода public String fileToString() из MainActivity приложении падает. А если скопировать в MainActivity то проблем не...

Приложение падает при включении блютуз
Здравствуйте. Я первый раз работаю с блютуз в андроид. Запустил приложение, а при нажатии кнопки, которая запускает блютуз, оно вылетает. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru