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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
#1

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

30.07.2011, 16:53. Просмотров 318. Ответов 2
Метки нет (Все метки)

После введения названия книги программа аварийно завершается. В чем проблема ?

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
#include<iostream>
#include<windows.h>
#include<stdlib.h>
using namespace std;
class publications
{protected:
char b[100];
float c;
public:
    void fc()
    {cout<<"Введите название книги --> ";
    SetConsoleCP(1251);
    cin.get(b,100,'0');
    SetConsoleCP(866);
    cout<<"Введите цену --> ";
    cin>>c;}
    void fc1()
    {cout<<"Книга "<<b<<endl;
    cout<<"Цена "<<c<<endl;}
};
 
class book:public publications
{protected:
int str;
float min;
public:
void fc2()
{publications::fc();
cout<<"Введите кол-во страниц --> ";
cin>>str;
cout<<"Введите кол-во минут --> ";
cin>>min;
}
void fc3()
{publications::fc1();
cout<<"Страниц в книге - "<<str<<endl;
cout<<"Продолжительность диска - "<<min<<endl;}
 
};
int main ()
{setlocale(LC_ALL,"Rus");
book a1;
book* ptr[100];
int i=0;
char y;
bool t;
do
{ptr[i]->fc2();
i++;
cout<<"Ввести еще книгу ? (y/n) --> ";
cin>>y;
if(y=='y'||y=='Y')
    t=true;
else if(y=='n'||y=='N')
    t=false;
else 
    {cout<<"Ошибка";
cin.get();
cin.get();
exit(0);}
}while(t==true);
for(int i1=0;i1<i;i1++)
    ptr[i1]->fc3();
cin.get();
cin.get();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2011, 16:53     Ошибка ввода
Посмотрите здесь:

Ошибка ввода - C++
Программа считывает ряд чисел и записывает их в вектор, подсчитывает количество введенных чисел и их сумму (первых n чисел). С вводом...

Ошибка ввода - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;istream&gt; #include &lt;cstdio&gt; using namespace std; int main()...

Ошибка ввода - C++
Возникает непонятная ошибка при вводе русских символов. Фото ниже. #include &lt;iostream&gt; using namespace std; #define ERR_INPUT ...

классы. ошибка ввода - C++
Почему-то не считывает и, соответственно, не выводит имя. Что не так?? / #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Ошибка ввода в массив - C++
#include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt; &quot;vvedite colovo chisel: &quot;; int q = 0; cin &gt;&gt; q; int s =...

Ошибка потока ввода - C++
Здравствуйте. Подскажите, почему в этой простой программе, ошибка с оператором потокового ввода &quot;&lt;&lt;&quot;? Пишет, &quot;Отсутствует оператор &lt;&lt;&quot; ...

Ошибка проверки ввода - C++
Помогите пожалуйста исправить проверку ввода { cout&lt;&lt;setw(15)&lt;&lt;&quot;Year: \t&quot;; cin&gt;&gt;note.date; if (note.date&lt;1950 &amp; note.date&gt;2000) ...

Ошибка ввода данных - C++
всем доброго времени суток,не пойму в чем бред дело в том,что когда реализую диалог с пользователем ,то когда я ввожу данные первый...

Ошибка после компиляции и ввода - C++
Компилирую программу,ввожу переменные и выбивает &quot;Unhandled exception at 0x00000001 in Lab 5 1.exe: 0xC0000005: Access violation reading...

Перегрузка оператора ввода, ошибка - C++
struct date_of_birth { int year; int month; int day; date_of_birth(int year =0, int month =0, int day =0):year(year),...

Ошибка потокового ввода cin - C++
Цель: сделать проверку ввода с клавиатуры числа unsigned short типа. Проблема: при вводе значения кпримеру: 2A , то переходит к...

Перегрузка ввода где ошибка - C++
Доброго времени суток. Не понимаю где ошибка в перегрузке ввода(&gt;&gt;):wall:. Перегрузка вывода работает отлично. Кусок кода. ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
1904 / 1436 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
30.07.2011, 16:59     Ошибка ввода #2
Цитата Сообщение от parkito Посмотреть сообщение
После введения названия книги программа аварийно завершается. В чем проблема ?
Странно, должна падать сразу:
C++
1
ptr[i]->fc2();
вызов функции по неинициализированному указателю.
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
30.07.2011, 17:08  [ТС]     Ошибка ввода #3
Тьфу.. точно. Строчку пропустил

C++
1
ptr[i]=new book;
Добавлено через 4 минуты
Но тогда поле введения информации про первую книгу. Сразу вызывается почему то бесконечный цикл. Почему ?

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
#include<iostream>
#include<windows.h>
#include<stdlib.h>
using namespace std;
class publications
{protected:
char b[100];
float c;
public:
    void fc()
    {cout<<"Введите название книги --> ";
    SetConsoleCP(1251);
    cin.get(b,100);
    SetConsoleCP(866);
    cout<<"Введите цену --> ";
    cin>>c;
    }
    void fc1()
    {cout<<"Книга "<<b<<endl;
    cout<<"Цена "<<c<<endl;}
};
 
class book:public publications
{protected:
int str;
float min;
public:
void fc2()
{publications::fc();
cout<<"Введите кол-во страниц --> ";
cin>>str;
cout<<"Введите кол-во минут --> ";
cin>>min;
}
void fc3()
{publications::fc1();
cout<<"Страниц в книге - "<<str<<endl;
cout<<"Продолжительность диска - "<<min<<endl;}
 
};
int main ()
{setlocale(LC_ALL,"Rus");
book a1;
book* ptr[100];
int i=0;
char y;
bool t;
do
{
    ptr[i]=new book;
    ptr[i]->fc2();
i++;
cout<<"Ввести еще книгу ? (y/n) --> ";
cin>>y;
if(y=='y'||y=='Y')
    t=true;
else if(y=='n'||y=='N')
    t=false;
else 
    {cout<<"Ошибка";
cin.get();
cin.get();
exit(0);}
}while(t==true);
for(int i1=0;i1<i;i1++)
    ptr[i1]->fc3();
cin.get();
cin.get();
return 0;
}Р
Yandex
Объявления
30.07.2011, 17:08     Ошибка ввода
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru