Форум программистов, компьютерный форум CyberForum.ru

Задать максимально разрешенное количество вводимых символов (std::string) - C++

Восстановить пароль Регистрация
 
Obi1
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 3
11.11.2015, 17:55     Задать максимально разрешенное количество вводимых символов (std::string) #1
Привет ребята!
Такая тема: Вводимая строка не должен превышать, допустим, 10 символов (строка хранится в типе string).
Делаю так

C++
1
cin.getline(strPass, 10);
От компилятора получаю:
error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize)' : cannot convert parameter 1 from 'std::string' to 'char *'

Аналогично и для
C++
1
cin.get(strPass, 10);
Собственно и вопрос:
Как задать максимум для string (массив для char не вариант).
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2015, 17:55     Задать максимально разрешенное количество вводимых символов (std::string)
Посмотрите здесь:

std::string -> std::wstring C++
C++ Изменение отдельных символов в массиве "std::string"
C++ std::string + std::remove
STL String. Вывести слово и после него количество символов C++
C++ Реализовать проверку на количество вводимых символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,581
11.11.2015, 18:12     Задать максимально разрешенное количество вводимых символов (std::string) #2
string читается так:
C++
1
getline(cin, strPass);
И там нет ограничителя длины, так как длина string не фиксирована как у массива.
Goldutop
 Аватар для Goldutop
10 / 10 / 7
Регистрация: 04.09.2014
Сообщений: 62
Завершенные тесты: 1
11.11.2015, 18:20     Задать максимально разрешенное количество вводимых символов (std::string) #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Obi1, можешь сделать через такую функцию:
C++
1
2
3
4
5
6
7
8
9
10
void getString(string &str)
{
    char *temp = new char[11];
    cin.getline(temp, 11);
 
    str = temp;
 
    cin.clear();
    delete []temp;
}
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,581
11.11.2015, 18:21     Задать максимально разрешенное количество вводимых символов (std::string) #4
Проще считать в цикле символами.
Obi1
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 3
11.11.2015, 19:01  [ТС]     Задать максимально разрешенное количество вводимых символов (std::string) #5
Ребята спасибо!
P.S:
nmcf
На счет цикла додумал уже после отправки сообщения
Goldutop
Функции ещё толком не изучил, но спасибо, запомнил!
Yandex
Объявления
11.11.2015, 19:01     Задать максимально разрешенное количество вводимых символов (std::string)
Ответ Создать тему
Опции темы

Текущее время: 16:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru