Size: a a a

2021 February 19

D

Danya in supapro.cxx
Зачем нам этот прекрасный код здесь?
источник

E

Eugene in supapro.cxx
Danya
Зачем нам этот прекрасный код здесь?
для общего развития
источник

IZ

Ilia Zviagin in supapro.cxx
In Dev
Всегда ли корректно использовать -1 для получения наибольшего значения для беззнаковых типов?
Так вообще некорректно!
источник

IZ

Ilia Zviagin in supapro.cxx
Pavel Kazakov
std::string::npos так и заимплеменчен обычно
А это вот не ваше дело, как он на конкретной платформе реализован
источник

SS

Sergey Skvortsov in supapro.cxx
Ilia Zviagin
Так вообще некорректно!
Почему?
источник

SS

Sergey Skvortsov in supapro.cxx
Ilia Zviagin
А это вот не ваше дело, как он на конкретной платформе реализован
https://eel.is/c++draft/basic.string.general#3
static const size_type npos  = -1;
источник

IZ

Ilia Zviagin in supapro.cxx
Sergey Skvortsov
Почему?
Потому что используй константы из limits
источник

D

Danya in supapro.cxx
Ilia Zviagin
Потому что используй константы из limits
Это не делает код некорректным
источник

SS

Sergey Skvortsov in supapro.cxx
Ilia Zviagin
Потому что используй константы из limits
Способ с -1 корректный, разве что некрасивый
источник

О

Олег in supapro.cxx
Подскажите, пожалуйста, почему вот  такое вылазит: https://prnt.sc/100sc61

#include <iostream>
#include <string>

/* Перевод из одной системы счисления в другую (2 - 16) */

using namespace std;
void ten_to_two(int, int);

int main()
{
   int incoming;
   setlocale(0, "");
   string str, help = "0123456789.-ABCDEFabcdef", result;
   cout << "Введите исходную систему счисления: ";
   cin >> incoming;
   cout << "Введите ваше число: ";
   getline(cin, str);

   int m = 0; // Удаление пробелов перед данными, если они есть
   while (str[m] == ' ' || str[m] == '\t') m++;
   if (m > 0) str.erase(str.begin(), str.begin() + m);

   m = str.size() - 1; // Удаление пробелов после данных, если они есть
   while (str[m] == ' ' || str[m] == '\t') m--;
   if (m < (str.size() - 1)) str.erase(str.begin() + m + 1, str.end());
}
источник

О

Олег in supapro.cxx
А если поменяю вот так, то все работает:
    cout << "Введите ваше число: ";
   getline(cin, str);
   cout << "Введите исходную систему счисления: ";
   cin >> incoming;
источник

IZ

Ilia Zviagin in supapro.cxx
Олег
Подскажите, пожалуйста, почему вот  такое вылазит: https://prnt.sc/100sc61

#include <iostream>
#include <string>

/* Перевод из одной системы счисления в другую (2 - 16) */

using namespace std;
void ten_to_two(int, int);

int main()
{
   int incoming;
   setlocale(0, "");
   string str, help = "0123456789.-ABCDEFabcdef", result;
   cout << "Введите исходную систему счисления: ";
   cin >> incoming;
   cout << "Введите ваше число: ";
   getline(cin, str);

   int m = 0; // Удаление пробелов перед данными, если они есть
   while (str[m] == ' ' || str[m] == '\t') m++;
   if (m > 0) str.erase(str.begin(), str.begin() + m);

   m = str.size() - 1; // Удаление пробелов после данных, если они есть
   while (str[m] == ' ' || str[m] == '\t') m--;
   if (m < (str.size() - 1)) str.erase(str.begin() + m + 1, str.end());
}
Олежа, давай уже ты не будешь тупить, и выучить отладчик. Это несложно.
F10, F11 ..
источник

О

Олег in supapro.cxx
да я смотрел, там m = -1, но каким вообще образом оно равно -1
источник

IZ

Ilia Zviagin in supapro.cxx
Олег
Подскажите, пожалуйста, почему вот  такое вылазит: https://prnt.sc/100sc61

#include <iostream>
#include <string>

/* Перевод из одной системы счисления в другую (2 - 16) */

using namespace std;
void ten_to_two(int, int);

int main()
{
   int incoming;
   setlocale(0, "");
   string str, help = "0123456789.-ABCDEFabcdef", result;
   cout << "Введите исходную систему счисления: ";
   cin >> incoming;
   cout << "Введите ваше число: ";
   getline(cin, str);

   int m = 0; // Удаление пробелов перед данными, если они есть
   while (str[m] == ' ' || str[m] == '\t') m++;
   if (m > 0) str.erase(str.begin(), str.begin() + m);

   m = str.size() - 1; // Удаление пробелов после данных, если они есть
   while (str[m] == ' ' || str[m] == '\t') m--;
   if (m < (str.size() - 1)) str.erase(str.begin() + m + 1, str.end());
}
while (str[m] == ' ' || str[m] == '\t') m++; — не хочешь тут что-нибудь ещё проверить?
источник

О

Олег in supapro.cxx
Ilia Zviagin
while (str[m] == ' ' || str[m] == '\t') m++; — не хочешь тут что-нибудь ещё проверить?
нет
источник

IZ

Ilia Zviagin in supapro.cxx
Олег
нет
А я бы проверил...
источник

О

Олег in supapro.cxx
Ilia Zviagin
А я бы проверил...
что?
источник

О

Олег in supapro.cxx
Тю бл, я тупой, забыл как считывание строки после числа происходит
источник

О

Олег in supapro.cxx
    cout << "Введите исходную систему счисления: ";
   cin >> incoming;
   cout << "Введите ваше число: ";
   cin.get();
   getline(cin, str);

Это все решило) Извиняюсь за беспокойство)
источник

А

А in supapro.cxx
подскажите пожалуйста
как обрабатывать ввод
мне нужно чтобы пользователь ввел не больше 5 чисел
источник