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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 245
#1

do while - как выйти из цикла? - C++

25.09.2012, 17:03. Просмотров 1378. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста, а то я уже всю голову "сломал", почему при вводе "А" цикл не прерывается???

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
      setlocale(LC_ALL, "Russian"); 
      using std::cin;using std::cout;using std::endl;using std::string;using std::getline;
      string str;
      
         do 
          {cout<<"Введите А " <<endl;
           getline(cin,str);
          }while(str !="А");
         
 
    cin.sync();
    cin.get();
    return 0;
    
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 17:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос do while - как выйти из цикла? (C++):

Как выйти из цикла while(); - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cctype&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main()...

Как выйти из цикла? Не получается - C++
Есть задача: Из-за высокой цены бензина водители озабочены затратами топлива своих автомобилей. Один водитель взял в рейс несколько...

Не пойму как из цикла выйти - C++
в учебнике такой пример. #include &lt;stdio.h&gt; main() { long nc; nc = 0; while ( getchar() != EOF)

Как выйти из цикла с символьными массивами? - C++
Допустим, хочу сделать цикл, в котором бы считывалась символьная строка с клавиатуры и выводилась на экран. Не могу придумать условие...

Выйти из цикла до того, как n равно 0 - C++
Друзья подскажите почему условие цикла игнорируется?Прописал до тех пор пока не равно нулю она всё равно делит на ноль. char y; do ...

Как выйти из цикла клавишей Enter - C++
Доброго времени суток, форумчане! Получил несколько необычное задание: у нас есть рядок с пробелами. Используя только cin вывести в файл...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 17:16 #2
Используйте просто get
Потому что getline сжирает строку вместе с escape символами, т.е. в данном случае он сожрет строку вместе c символом перевода

поэтому либо используйте get
либо измените условие

C++
1
(str != "A\n" || str != "A\r\n")
Добавлено через 3 минуты
а нет, поторопился, тогда я сам не знаю(
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.09.2012, 17:24 #3
Дело в локали. Исправьте вашу А на английскую и все будет ок (вводить надо, соответственно, тоже английскую)
0
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 17:26 #4
почему с английской А работает, а с русской А не работает (не выходит из цикла)

в чем фишка?
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 17:27 #5
Цитата Сообщение от kotleta Посмотреть сообщение
в чем фишка?
Фишка в том, что ввод русский не сделан.

C++
1
2
3
4
#include <windows.h>
...
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
1
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 245
25.09.2012, 17:31  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Фишка в том, что ввод русский не сделан.
А как сделать что бы русский ввод был?
0
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.09.2012, 17:47 #7
Полагаю, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <Windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    string str;
    do 
    {
        cout<<"Введите И " <<endl;
        getline(cin,str);
    }while(str != "И");
    system("pause");
    return 0;
}
1
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 245
25.09.2012, 18:21  [ТС] #8
Цитата Сообщение от yuron_477 Посмотреть сообщение
Полагаю, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <Windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    string str;
    do 
    {
        cout<<"Введите И " <<endl;
        getline(cin,str);
    }while(str != "И");
    system("pause");
    return 0;
}
А почему буквы корява отображаются? нажимаю И выходит Ш, а остальные вообще непонятно как отображаются, какие-то каракули выходят.
Но работает!
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 18:35 #9
Цитата Сообщение от DDim1000 Посмотреть сообщение
А почему буквы корява отображаются?
Попробуйте в свойствах консоли выбрать шрифт: Lucida Console. Может поможет.

Добавлено через 4 минуты
yuron_477, это забыли:
C++
1
2
#include <iostream>
#include <string>
Добавлено через 5 минут
DDim1000, а помогло?
1
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 245
25.09.2012, 19:34  [ТС] #10
DDim1000, а помогло?
Да, работает. Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2012, 19:34
Привет! Вот еще темы с ответами:

Как выйти из цикла по нажатию кнопки? - C++
Есть цикл ... while (1) { код } ... как можно организовать выход из этого зацикливания по нажатию какой либо конкретной...

Как выйти из цикла, если break относится к switch? - C++
Как выйти из цикла в конструкции while(условие) { switch(i) case(!условие): break; default break; }

Старый борланд: как выйти из бесконечного цикла по нажатию заданной клавиши? - C++
Короче нужно сделать прогу которая считает сколько отрицательных,положительных,равных 0 ввел пользователь. Реализовал.Пользователь вводит...

Цикл: Выйти в любой момент времени из цикла while нажатием определённой кнопки. Как реализовать? - C++
Необходимо выйти в любой момент времени из цикла while нажатием определённой кнопки. Как реализовать?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.09.2012, 19:34
Ответ Создать тему
Опции темы

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