Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прервать цикл используя буквенные переменные? if (m==y) {breack;} - не работает 
:(
    Опции темы
Senyak
  Дата 23.9.2009, 17:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



Вопрос следующий - есть цикл который выдаёт выбор из 2х вариантов Yes или No
при выборе Yes (т.е.  "Y") он должен прерываться, а при выборе No (т.е. n) возвращаться к началу. Но при любом выборе он начинается заново.
Я думаю что ошибка в заданных переменных ибо если за за k брать цифры в if всё замечательно работает. Подскажите как указать буквы... 

Код

#include <cstdlib>
#include <iostream>
                                                            
using namespace std;                                                            
                                                            
int main(int argc, char *argv[])                                                            
{                                                            
    for(;;)
    {
                                
        char k,y,n,Y,N,Yes,No; // string тоже пробовал 
        cout<<"Yes(y) / No(n)  \n";
        cin>> k;
                                                                                   
            if (k==y)        
            {  
            break;             
            }
                                                                                                              
                                                                                                  
            if (k==n)
            {                                                                                                                                                                                                                                                             
            continue; 
            }
                                                     
    }                                                       
system("PAUSE");
return EXIT_SUCCESS;
}                                                            


PM MAIL   Вверх
ller
Дата 23.9.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



Код

 char k,y,n,Y,N,Yes,No; // string тоже пробовал 


Оригинально нафизачем столько переменных?
Код

 if (k=='y')        

тебе в помощь
PM MAIL   Вверх
Senyak
Дата 23.9.2009, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



Громадное спасибо! 2й день мучаюсь.
З.Ы. А столько переменных т.к. C++ придирчив же к регистру
что бы потом ввести (if k='y'||'Y') // Yes и yes это я думаю он уже по 1й букве будет принимать)
PM MAIL   Вверх
zim22
Дата 23.9.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Senyak @  23.9.2009,  18:12 Найти цитируемый пост)
З.Ы. А столько переменных т.к. C++ придирчив же к регистру

можешь преобразовать сначала все вводимые символы к одному регистру и сравнивать только с ним.
ф-и называются tolower/toupper


Это сообщение отредактировал(а) zim22 - 23.9.2009, 18:15


--------------------
PM MAIL   Вверх
Anikmar
Дата 23.9.2009, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Senyak @  23.9.2009,  18:12 Найти цитируемый пост)
(if k='y'||'Y')

Правильно так:
if ((k=='y')||(k=='Y')) ...

Вам надо начать с изучения синтаксиса языка.  smile 
PM MAIL ICQ   Вверх
Senyak
Дата 23.9.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



Учту, спасибо, просто мои знания не уходят дальше "С++ Для чайников"
Если можно ещё вопрос... Нет ли способа вывода русских букв в С++ после компиляции в DOS приложение, а то я методом подбора слова склеиваю)   smile 

Это сообщение отредактировал(а) Senyak - 23.9.2009, 18:31
PM MAIL   Вверх
Anikmar
Дата 23.9.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Поиск. Миллион раз обсуждалось на форуме.
PM MAIL ICQ   Вверх
Senyak
Дата 23.9.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



Ок спс, я просто если это вдруг очень просто)

PM MAIL   Вверх
bsa
Дата 23.9.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Код
if (toupper(k) == 'Y')

PM   Вверх
Senyak
Дата 24.9.2009, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



А с русскими буквами как быть? >> При ввводе <<
т.е. что бы завершить программу, ввести "Да" или "д"
з.ы. с выводом русского разобрался
PM MAIL   Вверх
Anikmar
Дата 24.9.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Senyak @  24.9.2009,  09:20 Найти цитируемый пост)
А с русскими буквами как быть? >> При ввводе <<

Также как и с английскими.

Лично я никогда не использовал буквы в этих случаях (помнить в какой раскладке висишь, и т.п.) Гораздо проще цифры. С ними не ошибешься:
0 - выход
1 - рассчет
и т.п.
PM MAIL ICQ   Вверх
Senyak
Дата 24.9.2009, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



При вводе выдаёт ошибку следующего содержания:
Код

char д;  // или 
string д;

\tset.spp expected primary-expression before "char" 
\test .cpp declaration does not declare anything 

Может надо ввести что-то типа функции - SetConsole
PM MAIL   Вверх
mes
Дата 24.9.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Senyak @  24.9.2009,  10:08 Найти цитируемый пост)
При вводе выдаёт ошибку следующего содержания:

почитайте в книге  разницу между д и 'д' - точнее про то, что означают одинарные кавычки.


Это сообщение отредактировал(а) mes - 24.9.2009, 11:24


--------------------
PM MAIL WWW   Вверх
Anikmar
Дата 24.9.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Anikmar @  23.9.2009,  18:15 Найти цитируемый пост)
Вам надо начать с изучения синтаксиса языка.    


Цитата(mes @  24.9.2009,  11:23 Найти цитируемый пост)
почитайте в книге  разницу между д и 'д' - точнее про то, что означают одинарные кавычки.


char 'д'; топикстартеру также не поможет.

Надо читать про объявления переменных, строковые и символьные константы и синтаксис языка
PM MAIL ICQ   Вверх
Senyak
Дата 24.9.2009, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чайник



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.11.2007

Репутация: нет
Всего: 0



Всё пошёл читать про синтаксис. А то теперь понятно, что всё мои проблемы из-за не знания синтаксиса. Спасибо всем за помощь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.