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

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

Войти
Регистрация
Восстановить пароль
 
 
SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532
#1

Ошибка в программе - C++

15.09.2013, 21:53. Просмотров 778. Ответов 31
Метки нет (Все метки)

Доброго времени суток. Только недавно начал пробовать что то ваять на С, пока все получалось до этого момента.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
   setlocale(0, "");
   int a,b,c,d;
   d=1;
   char rez;
   rez = "e";
   while(rez == "e")
   {
   cout << "Введите первое число: ";
   cin >> a;
   cout << "Введите второе число: ";
   cin >> b;
   c = a + b;
   cout << "Cумма чисел = " << c << endl << "Программа выполнена успешно! Введите 'exit' для выхода или 'e' для вычисления еще одной суммы: " << endl;
   cin >> rez;
   }
}
Что то не нравиться ему переменная rez и никак не могу с ней разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 21:53     Ошибка в программе
Посмотрите здесь:

Ошибка в программе - C++
Доброе утро, уважаемые программисты. Прошу у вас помощи: выбивает ошибку. Спасибо #include &lt;iostream&gt; #include &lt;math.h&gt; using...

Ошибка в программе - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; using namespace std; int main() { const float...

Ошибка в программе - C++
Доброе утро! Прошу у вас помощи с программой: не хочет работать. Буду очень благодарен за любую помощь! // ConsoleApplication1.cpp:...

ошибка в программе - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;ctype.h&gt; ...

Ошибка в программе - C++
Откуда берутся эти числа? Задание (если нужно): Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в...

Ошибка в программе - C++
Я сейчас читаю книгу Липпмана &quot;Язык программирования С++&quot;, так вот, там в конце 1 главы есть упражнение.Цитирую: &quot;Напишите программу,...

ошибка в программе - C++
скажите где ошибка и как её исправить? #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #include&lt;stdlib.h&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
15.09.2013, 21:57     Ошибка в программе #2
C++
1
rez = 'e';
SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532
15.09.2013, 22:06  [ТС]     Ошибка в программе #3
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
rez = 'e';
Мдаа. Вот уж чего не мог ожидать.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
   setlocale(0, "");
   int a,b,c,d;
   d=1;
   char rez;
   rez = 'e';
   while(rez == 'e')
   {
   cout << "Введите первое число: ";
   cin >> a;
   cout << "Введите второе число: ";
   cin >> b;
   c = a + b;
   cout << "Cумма чисел = " << c << endl << "Программа выполнена успешно! Введите 'exit' для выхода или 'e' для вычисления еще одной суммы: " << endl;
   cin >> rez;
   }
}
а почему происходит зацикливание программы когда цикл должен завершиться, то есть при вводе "exit"?
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
15.09.2013, 22:09     Ошибка в программе #4
Цитата Сообщение от SanychBY Посмотреть сообщение
а почему происходит зацикливание программы когда цикл должен завершиться, то есть при вводе "exit"?
Ты вводишь слово "exit"? А попробуй просто что-нибудь другое и посмотри на результат.
SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532
15.09.2013, 22:11  [ТС]     Ошибка в программе #5
Цитата Сообщение от Бендерродригез Посмотреть сообщение
Ты вводишь слово "exit"? А попробуй просто что-нибудь другое и посмотри на результат.
Цикл завершился.

Добавлено через 34 секунды
а почему не работает с exit?
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
15.09.2013, 22:14     Ошибка в программе #6
Цитата Сообщение от SanychBY Посмотреть сообщение
Цикл завершился.

Добавлено через 34 секунды
а почему не работает с exit?
Потому что ты считываешь символ, а не строку. Ну, а раз первый символ в "exit" - 'e', то...
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
15.09.2013, 22:18     Ошибка в программе #7
Цитата Сообщение от SanychBY Посмотреть сообщение
а почему происходит зацикливание программы когда цикл должен завершиться, то есть при вводе "exit"?
когда вводишь слово "exit", то первая буква попадает в переменную rez а остальные так и остаются во входной очереди. Кстати условие продолжения цикла будет true Они никуда не исчезают и ждут следующего оператора cin >> . И когда встречается cin >> a; (переменная a это тип int), то в нее попадает следующая буква или даже оставшаяся часть от слова exit Но ведь в переменной типа int не может хранится строка! поток cin становится испорченным и Вот тут начинается зацикливание.
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
15.09.2013, 22:19     Ошибка в программе #8
Цитата Сообщение от SanychBY Посмотреть сообщение
Мдаа. Вот уж чего не мог ожидать.
одинарные кавычки символ
двойные строка, даже если строка из одной буквы
например
'a' в памяти будет лежать 'a'
"a" в памяти будет лежать 'a' и 0
0 в Си это конец строки
SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532
15.09.2013, 22:30  [ТС]     Ошибка в программе #9
Цитата Сообщение от Бендерродригез Посмотреть сообщение
Потому что ты считываешь символ, а не строку. Ну, а раз первый символ в "exit" - 'e', то...
Цитата Сообщение от _ Посмотреть сообщение
когда вводишь слово "exit", то первая буква попадает в переменную rez а остальные так и остаются во входной очереди. Кстати условие продолжения цикла будет true Они никуда не исчезают и ждут следующего оператора cin >> . И когда встречается cin >> a; (переменная a это тип int), то в нее попадает следующая буква или даже оставшаяся часть от слова exit Но ведь в переменной типа int не может хранится строка! поток cin становится испорченным и Вот тут начинается зацикливание.
Хорошо, а как тогда записать в rez всю строку exit?

Добавлено через 1 минуту
Или ка считать?
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
15.09.2013, 22:31     Ошибка в программе #10
Цитата Сообщение от SanychBY Посмотреть сообщение
Хорошо, а как тогда записать в rez всю строку exit?

Добавлено через 1 минуту
Или ка считать?
В rez - никак. Это char.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
15.09.2013, 22:32     Ошибка в программе #11
Цитата Сообщение от SanychBY Посмотреть сообщение
как тогда записать в rez всю строку exit?
для этого нужен массив char-ов. где каждый элемент - символ:

C++
1
2
3
char rez[20];
 
cin >> rez;
еще можно использовать string, но думаю он здесь не нужен
SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532
15.09.2013, 22:34  [ТС]     Ошибка в программе #12
Цитата Сообщение от Бендерродригез Посмотреть сообщение
В rez - никак. Это char.
А во что тогда?

Добавлено через 1 минуту
Цитата Сообщение от _ Посмотреть сообщение
еще можно использовать string, но думаю он здесь не нужен
Код
int — целочисленный тип данных.
float — тип данных с плавающей запятой.
double — тип данных с плавающей запятой двойной точности.
char — символьный тип данных.
bool — логический тип данных.
что за стринг?
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
15.09.2013, 22:37     Ошибка в программе #13
Да и зачем? Отправляешь любой символ кроме 'е' и всё.

Добавлено через 2 минуты
Цитата Сообщение от SanychBY Посмотреть сообщение
что за стринг?
Читай учебник дальше, всему своё время.
К тому же, от char до string читать не долго.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 22:37     Ошибка в программе #14
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
   setlocale(0, "");
   int a,b,c,d;
   d=1;
   string rez;
   
   do
   {
       cout << "Введите первое число: ";
       (cin >> a).get();
       cout << "Введите второе число: ";
       (cin >> b).get();
       c = a + b;
       cout << "Cумма чисел = " << c << endl << "Программа выполнена успешно! Введите 'exit' для выхода или 'e' для вычисления еще одной суммы: " << endl;
   
       getline(cin, rez);
   
   } while (rez != "exit");
 
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 22:39     Ошибка в программе
Еще ссылки по теме:

Ошибка в программе - C++
Проблема в сортировке, не совсем понимаю как реализовать. Тем более не знаю где инициализировать нулем count ...

Ошибка в программе - C++
Помогите запустить программу,а то пишет: C:\Users\Desktop\source\deykstra.cpp|4|fatal error: iostream.h: No such file or directory| Вот...

Ошибка в программе - C++
Ребят, очередная ошибка в программе. - Задача - Для целочисленной квадратной матрицы найти число элементов, кратных К и наибольшие...

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

ошибка в программе - C++
Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по...


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

Или воспользуйтесь поиском по форуму:
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
15.09.2013, 22:39     Ошибка в программе #15
Цитата Сообщение от SanychBY Посмотреть сообщение
что за стринг?
если коротко сказать то это массив у которого может изменятся размер.
чтобы его использовать надо подключить заголовочный файл
C++
1
#include <string>
а работа с ним намного легче чем с простыми массивами char []
Yandex
Объявления
15.09.2013, 22:39     Ошибка в программе
Ответ Создать тему
Опции темы

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