Показать полную графическую версию : Я хочу запретить ввод букв. Как это сделать?
DENoszone
13-06-2008, 23:07
я не понял полет мысли=))
у меня два поля для ввода и они желательно должны быть отдельными.
елси в первое введет "10 пробел 20" - то 20 запишется во второе значение. а это не желательно..
ну хотя если это и делается то что бы человек понимал что уже ввел значения и во второе..хотя это мне не надо точно=)
Тогда будем писать два раза scanf, теперь я не понял зачем тогда пробел?
Теперь становится понятно, тогда так и стоит сделать:
printf("\n Введите первый параметр (Только числа) ")
/* Здесь соответственная проверка на вводе именно чисел.*/
printf("\n Введите второй параметр (Только числа) ")
/* Дубль или организовать возврат на проверку.*/
или действительно растолковать юзеру что через пробел необходимо вводить лишь числа.
printf("\n Введите <x>пробел<y> (Только числа) ")
/* А здесь уже проверка на ввод обоих значений, если одно введено не верно то попросят заново ввести оба.*/
DENoszone
14-06-2008, 08:34
а где проверка???
что бы пробел считался как буква...
к примеру
"%dрпарапр%d" - записывается только первое %d
"%dпробел %d" - только первое %d
DENoszone, в текущем состоянии, когда в scanf указанна одна переменная, он так и работает, как показано в предыдущем посте, вот результат
Hi! Please enter the NUMBERS only 234234sdf 54645645fghfg
Thanks! You enter number 234234
Если пробел первый, но после него цифра он читает её. А на простое нажимание пробела идёт не восприятие.
DENoszone
14-06-2008, 10:55
блин=((
вообщем пытался сделать что то с русскими буквами...
но окозывается у меня уже все работало на компе...
но я что то зменил и после перезагрузки у меня в коде все переписалось на "‘Ї*бЁЎ®. ‚л ўўҐ«Ё"
а в программе это выходит норм русскими буквами...но если я напишу в коде русские буквы меня послыют. =)
XPEHOMETP
15-06-2008, 00:01
Фишка в том, что при выводе на консоль используется ДОСовская кодировка (ОЕМ), а в виндовских программах - ANSI (от юникода на время абстрагируемся для простоты). Кодировочки эти совпадают для цифр и английских букв, но отнюдь не для русских. Отсюда и траблы. Решить можно, загоняя введенный русский текст в функцию CharToOem (cмотрим здесь (http://forum.oszone.net/showthread.php?t=97689&highlight=chartooem) и здесь (http://forum.oszone.net/showthread.php?t=87493&highlight=chartooem))
XPEHOMETP, да в тех темах ещё юникод не так юзали, как сейчас во многих прогах.
CharToOem привязывает к MSVS. По универсальнее на базе ANSI, по моему это использовать набор текста в редакторе с соответствующей кодировкой.
А есть где простенький пример с юникодом, так сказать после заканчивания абстракции?
XPEHOMETP
15-06-2008, 21:54
Про юникод не знаю, мне это как-то не нужно было. Тем более что я на работе по большей части под Win 98SE сижу. Кажись, прямого преобразования из Unicode в ОЕМ нету, придется делать в два этапа: UnicodeToAnsi + CharToOem
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.