Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 21:09   #1
ichigo9911
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 16
По умолчанию Не правильно работает функция scanf()

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
	unsigned char c1, c2;
	bool b=true;
	while (b==true) 
	{
		printf("MAIN MENU\n");
		printf("l: left; r: right; q: quit\n");
		scanf("%c", &c1);
		switch (c1)
		{
			case 'q': printf("quiting menu...\n"); b=false; break;
			case 'l':
				{
					printf("LEFT MENU\n");
					printf("select a or b\n");
					scanf("%c", &c2);
					switch (c2)
					{
						case 'a': printf("you choose a\n"); continue;
						case 'b': printf("you choose b\n"); continue;
						default:  printf("you didnt choose a or b!\n"); continue;
					}
				}
			case 'r': 
				printf("RIGHT MENU\n");
				printf("select c or d");
				scanf("%c", &c2);
				switch (c2)
				{
					case 'c': printf("you choose c\n"); continue;
					case 'd': printf("you choose d\n"); continue;
					default:  printf("you didnt choose c or d!\n"); continue;
				}
			default: printf("you must type l or r or q!\n");
		}
	
	}
	
}
Запускаю отладчик, иду построчно, проблема возникает в case l. После выполнения строки scanf("%c", &c2), в переменную с2 записывается значение 10 ""(я так понимаю, 10й код в таблице ascii) без моего участия (т.е. я с клавиатуры ничего не ввожу). Не могу понять че за фигня...
ichigo9911 вне форума Ответить с цитированием
Старый 26.02.2012, 21:17   #2
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

case 'l' break'om заверши
Axrik вне форума Ответить с цитированием
Старый 26.02.2012, 21:57   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кстати да.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP функция - отказывается правильно работать S-HaCK XORitY PHP 4 24.09.2011 05:31
Не правильно (или правильно?) работает позиционирование в WebKit mutabor HTML и CSS 5 09.12.2010 09:54
не правильно работает функция mansp Общие вопросы C/C++ 15 07.11.2010 16:35
Пожскажите.Правильно оттабулирована функция?(Basic C++). sawer5 Общие вопросы C/C++ 0 28.11.2009 14:37
Функция StrtoFloat не правильно возвращает число Ra88it Помощь студентам 2 02.12.2008 20:26