Size: a a a

2020 August 08

R

Repti1oid in supapro.cxx
Liber Azerate
На проверку только текста... Никак не проверить, всё, что будет вводиться – будет текстом. Разве что использовать isalpha
Ну, реализовать точно можно,  гляну что такое isalpha, спс)
источник

R

Repti1oid in supapro.cxx
std::slavik
ну лучше от этого отвыкать
Для приложений русский то нужен
источник

LA

Liber Azerate in supapro.cxx
Repti1oid
Ну, реализовать точно можно,  гляну что такое isalpha, спс)
А что такое проверка на количество символов я не понимаю, но можно использовать std::string и смотреть длину
источник

s

std::slavik in supapro.cxx
Repti1oid
Для приложений русский то нужен
ну так не для консоли
источник

R

Repti1oid in supapro.cxx
std::slavik
ну так не для консоли
Конечно
источник

R

Repti1oid in supapro.cxx
но принципы то те же вроде, я конечно новичок, но логично, не?
источник

s

std::slavik in supapro.cxx
Repti1oid
Спасибо, справился. Это вот думаю как сделать проверку на количество символов и сделать ограничение на ввод только текста. Это допустим будет проверка на ввод имени.
все что вводится - текст
источник

R

Repti1oid in supapro.cxx
std::slavik
все что вводится - текст
То есть стандартные проверки (if больше меньше и тп.) тут не помогут как я понял
источник

LA

Liber Azerate in supapro.cxx
Repti1oid
То есть стандартные проверки (if больше меньше и тп.) тут не помогут как я понял
Помогут. Можно проверять чисто из серии >= 'A', либо использовать isalpha
источник

s

std::slavik in supapro.cxx
Repti1oid
То есть стандартные проверки (if больше меньше и тп.) тут не помогут как я понял
#include <iostream>
int main()
{
 using std::cout;
   using std::cin;
   cout << "Enter 1:\n";
   char one;
   while (cin >> one)
   {
       if (one == 0x31)
           break;
       else cout << "Error:\n";
   }
   cout << one << '\n';
 return 0;
}
источник

s

std::slavik in supapro.cxx
как тебе такое Илон Маск
источник

s

std::slavik in supapro.cxx
Repti1oid
То есть стандартные проверки (if больше меньше и тп.) тут не помогут как я понял
помогут)
источник

s

std::slavik in supapro.cxx
тут еще просто нужно понимать что делает >> оператор для cin и типа справа
источник

R

Repti1oid in supapro.cxx
@std_slavik @lazerate спс, попробую  разобраться
источник

LA

Liber Azerate in supapro.cxx
std::slavik
тут еще просто нужно понимать что делает >> оператор для cin и типа справа
(шутка про ADL)
источник

s

std::slavik in supapro.cxx
std::slavik
#include <iostream>
int main()
{
 using std::cout;
   using std::cin;
   cout << "Enter 1:\n";
   char one;
   while (cin >> one)
   {
       if (one == 0x31)
           break;
       else cout << "Error:\n";
   }
   cout << one << '\n';
 return 0;
}
если здесь заменить char на int - уже не так будет работать
источник

s

std::slavik in supapro.cxx
все дело в шаблонном операторе
template <class _Elem, class _Traits>
basic_istream<_Elem, _Traits>& operator>>(basic_istream<_Elem, _Traits>& _Istr, _Elem& _Ch) { // extract a character
   using _Myis = basic_istream<_Elem, _Traits>;

   typename _Myis::int_type _Meta;
   ios_base::iostate _State = ios_base::goodbit;
   const typename _Myis::sentry _Ok(_Istr);

   if (_Ok) { // state okay, extract characters
       _TRY_IO_BEGIN
       _Meta = _Istr.rdbuf()->sbumpc();
       if (_Traits::eq_int_type(_Traits::eof(), _Meta)) {
           _State |= ios_base::eofbit | ios_base::failbit; // end of file
       } else {
           _Ch = _Traits::to_char_type(_Meta); // got a character
       }
       _CATCH_IO_(ios_base, _Istr)
   }

   _Istr.setstate(_State);
   return _Istr;
}
источник

LA

Liber Azerate in supapro.cxx
std::slavik
все дело в шаблонном операторе
template <class _Elem, class _Traits>
basic_istream<_Elem, _Traits>& operator>>(basic_istream<_Elem, _Traits>& _Istr, _Elem& _Ch) { // extract a character
   using _Myis = basic_istream<_Elem, _Traits>;

   typename _Myis::int_type _Meta;
   ios_base::iostate _State = ios_base::goodbit;
   const typename _Myis::sentry _Ok(_Istr);

   if (_Ok) { // state okay, extract characters
       _TRY_IO_BEGIN
       _Meta = _Istr.rdbuf()->sbumpc();
       if (_Traits::eq_int_type(_Traits::eof(), _Meta)) {
           _State |= ios_base::eofbit | ios_base::failbit; // end of file
       } else {
           _Ch = _Traits::to_char_type(_Meta); // got a character
       }
       _CATCH_IO_(ios_base, _Istr)
   }

   _Istr.setstate(_State);
   return _Istr;
}
Зачем...
источник

s

std::slavik in supapro.cxx
в зависимости от типа он либо делает преобразование либо не делает
источник

s

std::slavik in supapro.cxx
Liber Azerate
Зачем...
что зачем?
источник