IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> строки, С
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Всем привет - я хочу следующее : Вводится символ, если это 3, 4, 5 - то выводим на экран, если нет, то не выводим. Если после того как нажали 3, нажали 4 или 5 то меняем значение на нововведённое (аналогично со всеми). Что - то кажется мне, что я с символом окончания строки что - то напортачил. Буду рад, если подкорректируете кусочек кода.
	
int len;
char number[2];
len = 0;
if ( ( ch = getch() ) != 0 )
switch ( ch )
{
case 51,52,53 : //3, 4, 5
{
if ( len != 1 )
{
len++;
number[1] = ch;
}

else {
len--;
number[1] = ch;
}
}
break;

default : break;
}
bar (600,100,620,110);
outtextxy (600, 100, number);
} while (ch != 13);
number[2] = '\0';
amount = atoi (number);


Сообщение отредактировано: Tan -


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
сообщение
Сообщение #2


Гость






case 51,52,53 : //3, 4, 5
blink.gif Ты думаешь, это - вариант для 3-х символов? Сомневаюсь... Есть в С такая операция - "запятая". Она возвращает только последний результат, так что приведенный выше фрагмент аналогичен:

case 53 :


Чтобы сделать то, что ты задумал -
case 51:
case 52:
case 53: // 3, 4, 5
, тогда в этой метке будут обрабатываться все 3 символа...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Спасибо, это учту на будущее, это всё эхо паскаля smile.gif А в остальном что не так ?


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Лишние переменные и строки кода... В частности, len вообще не нужна, весь фрагмент:

...
int amount, ch;

/* инициализировать number достаточно так */
char number[2] = " \0";

do {
if((ch = getch()) != 0 )
switch(ch) {
case 51: case 52: case 53 :
number[0] = ch;
break;
}
bar (600,100,620,110);
outtextxy (600, 100, number);
} while (ch != 13);

amount = atoi (number);
...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Действительно, надо по максимуму брать от языка, спасибо!


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.12.2020 18:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name