|
|
|
проверка числа на символ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня такой вопрос: пользователь вводит число и если оно не из нужного диапозона или не число, то необходимо сделать это заново. вот как это смортится у меня: while (1) { printf ("vvedite sist s4isl isto4nik:"); scanf ("%d", &s1); if (s1>16 || s1<2) printf("Error! must 2-16 \n"); else break; } но тут у меня тока проверка на диапозон, а не на символы. Когда пользователь вводит символ, то получается зацикливание. Как мне сделать проверку? ведь вводимое число типа int, а не char. Если бы вводили символ, то моно проверить по диапозону аски таблицы, а как поступить с числовым вариантом??? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2006, 22:26 |
|
||
|
проверка числа на символ
|
|||
|---|---|---|---|
|
#18+
imho плохо пользоваться scanf-ом. надо всегда позволять пользователю вводить текстовые данные, а потом уже их проверять и преобразовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 01:26 |
|
||
|
проверка числа на символ
|
|||
|---|---|---|---|
|
#18+
Да нет, пользоваться scanf-ом вполне нормально. Только надо не забывать stdin сливать :) Добавь непосредственно перед scanf'ом fflush(stdin); и все будет зашибись без всяких аски таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 01:43 |
|
||
|
проверка числа на символ
|
|||
|---|---|---|---|
|
#18+
KronitЗдравствуйте. У меня такой вопрос: пользователь вводит число и если оно не из нужного диапозона или не число, то необходимо сделать это заново. вот как это смортится у меня: while (1) { printf ("vvedite sist s4isl isto4nik:"); scanf ("%d", &s1); if (s1>16 || s1<2) printf("Error! must 2-16 \n"); else break; } но тут у меня тока проверка на диапозон, а не на символы. Когда пользователь вводит символ, то получается зацикливание. Как мне сделать проверку? ведь вводимое число типа int, а не char. Если бы вводили символ, то моно проверить по диапозону аски таблицы, а как поступить с числовым вариантом??? Заранее спасибо. Почитайте про результат который возвращает scanf. В Вашем случае если она вернет не 1, то строка ввода содержала что то, что не может быть преобразовано в в тип который имеет Ваша переменная s1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 09:25 |
|
||
|
проверка числа на символ
|
|||
|---|---|---|---|
|
#18+
White OwlДа нет, пользоваться scanf-ом вполне нормально. Только надо не забывать stdin сливать :) Добавь непосредственно перед scanf'ом fflush(stdin); и все будет зашибись без всяких аски таблиц. Да, блин, хитрый подводный камень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 09:54 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=332&tid=2030382]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 325ms |

| 0 / 0 |
