Я пытаюсь проверить тип моей переменной с помощью функции scanf. Он отлично работает для Dev C++ (мой ввод is int), но он не использует Borland. Вот что я пробовал:scanf в Borland C++ Builder
AnsiString as = Edit1->Text;
string b = as.c_str();
int testb = atoi(b.c_str());
if(scanf("%i", &testb)==1){
do sth;
}
Любые идеи?
[edit1] переместили от комментариев по Spektre
У меня есть еще одна проблема. Мое значение ввода должно выглядеть как xx-xx-xxxx
, так что это дата.
Я должен проверить, являются ли день, месяц и год целыми.
Я пытался так:
AnsiString a = Edit1->Text;
date = a.c_str();
if (a==AnsiString().sprintf("%i",atoi(a.SubString(0,2).c_str()))
&& a==AnsiString().sprintf("%i",atoi(a.SubString(3,2).c_str()))
&& a==AnsiString().sprintf("%i",atoi(a.SubString(6,4).c_str())))
{
//do sth
}
- но проверить только один день. Кто-нибудь знает, почему? - JB 20 часов назад
Когда вы говорите, что это не работает, что вы подразумеваете под этим? Что происходит, когда вы запускаете код, который вы показываете? Пробовали ли вы работать в отладчике и прокладывать линию за строкой, чтобы узнать, что происходит? И почему вы назначаете 'testb', а затем напрямую перезаписываете значение с вызовом' scanf'? –
Можете ли вы объяснить, как здесь можно проверить тип? Вы вычисляете 'testb', а затем выбрасываете его значение в scanf. –
Мне нужно проверить, является ли входное значение числом или символом, потому что мне нужно целое число как тип ввода. –