ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #571  
Старый 12.01.2008, 01:19
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

dinar_007, не обдалбывайся так больше, чтобы постить в КОДИНГе. Мне за тобой удалять еще

Последний раз редактировалось _Great_; 12.01.2008 в 01:21..
 

  #572  
Старый 12.01.2008, 20:15
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

Я столкнулся с небольшой проблемкой при написании тел. справочника. Я использовал переменные типа чар(Имя, фамилия...) и интеджер(телефон, возраст...). Я, когда тестил прогу, случайно ввел в в поле тел номера буквы и прога полетела багом. Как можно сделать проверку того, что ввел пользователь - цифры или буквы, чтоб потом можно было вернутся на предидущий этап?
 

  #573  
Старый 12.01.2008, 20:21
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

Чего то ты "заморочился"

atol strtol atoi(маловат правда) не вылетают с ошибкой даже если там будут все буквы просто результат будет 0(ноль)!

... другое дело если ты пытаешься по DAO (ODBC) передать поле таблице в базе
дык просто переведи предварительно ATO*** -ами в то что тебе нужно!

если же у тебя MFC элементы, то просто не используй int как тип переменной.... всегда пользуйся CString а в соответствии с логикой переводи из CString в то что тебе нужно.

Последний раз редактировалось Delimiter; 12.01.2008 в 20:30..
 

  #574  
Старый 12.01.2008, 20:27
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

спс, но ты немного не понял - мне нужно узнать - есть ли там буквы или нету. Мне нужно, чтоб там были только цыфры и ничего лишнего. atoi немного не в этом случае, так как мне всеравно нужен результат в цыфрах, а не в буквах. Как можно такую проверку сделать?
 

  #575  
Старый 12.01.2008, 20:33
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

хоть я и не понял "ГДЕ ЭТО ТАМ"

bool IsAllDigits(char *str)
{
for(int i=0 *(str+i)!=0;i++)
if(*(str+i)<0x30 || *(str+i)>0x39)
return false;
return true;
}
где str -предварительный буфер.

если же ты используешь scanf .... то о каком возврате тут говорить.... кароче я не понял где это "ТАМ".

например:
char str[30];
do {
printf("Input telephone number");
scanf("%s",str);
} while(!IsAllDigits(str));
long tel=atol(str);

Последний раз редактировалось Delimiter; 12.01.2008 в 20:49..
 

  #576  
Старый 12.01.2008, 20:50
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

int age;
char tage[] = "введите ваш возраст";
CharToOem(tage,tage);
printf(tage);
cin>>age;
так вот - мне нужно, чтобы в age были только цифры без всяких преобразований - только проверка того, что ввел пользователь, а именно: буквы или цифры.
 

  #577  
Старый 12.01.2008, 20:56
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

то есть когда я ввожу свою собственную проверку на валидность(правильность) тебе не нравится????
ведь твоя команда
cin>>age
переполняет.... выходит за рамки

байты в памяти где зарезервировано место для age это 0 и 1
0 1 2 3 4

ты же посылаешь туда .... для того что бы был краш более 2-х байтов
место 2 и 3 заняты под другие нужды, ДЕЛО НЕ В СООТВЕТСТВИИ ТИПОВ!!!!

куда вставлять проверку если ты переполняешь одной командой????
8)))) вслушивайся в слова .... сейчас сменю географическое положение.
если еще не сделаешь напишу пример!

Последний раз редактировалось Delimiter; 12.01.2008 в 21:05..
 

  #578  
Старый 12.01.2008, 21:00
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

м... я немного протупил... Тогда возможно age обьявить чаром и потом сделать проверку и преобразование, я так понял? если да, то плз, напиши небольшой пример с преобразованием, как он юзается.
 

  #579  
Старый 12.01.2008, 21:59
Sharingan
Участник форума
Регистрация: 05.05.2007
Сообщений: 171
Провел на форуме:
1050662

Репутация: 435
Отправить сообщение для Sharingan с помощью ICQ
По умолчанию

а че типа массив цифер 1234567890 низя сделать, и если не подходит ни одному элементу массива то нафиг
 

  #580  
Старый 12.01.2008, 22:07
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

не, просто я думаю, чтоб не усложнять жизнь - просто проверить, все ли элементы чарового age являются цифрами и преобразовать чар в инт, если такое возможно... но как сделать проверку и преобразование - я не знаю...
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ