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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Obi1
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 3
#1

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

11.11.2015, 17:55. Просмотров 197. Ответов 4
Метки нет (Все метки)

Привет ребята!
Такая тема: Вводимая строка не должен превышать, допустим, 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 не вариант).
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2015, 17:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задать максимально разрешенное количество вводимых символов (std::string) (C++):

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Реализовать проверку на количество вводимых символов - C++
Допустим, объявлен массив чаров из 16 элементов, пользователь же ввел строку из 17 или более элементов - тогда программа зависает и...

Как ограничить количество вводимых символов с клавиатуры? - C++
Я учусь программировать на C++ и написал свой первый калькулятор, считает он нормально и вроде бы все ок и когда вводишь неверное значение...

Из переменной типа std::string записать в файл большое количество данных (2 Mb) - C++
Нужно записать в файл большое количество данных. Предполагается, что в переменной большое количество строк следовательно `&gt;&gt;` не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
11.11.2015, 18:12 #2
string читается так:
C++
1
getline(cin, strPass);
И там нет ограничителя длины, так как длина string не фиксирована как у массива.
0
Goldutop
10 / 10 / 7
Регистрация: 04.09.2014
Сообщений: 62
Завершенные тесты: 1
11.11.2015, 18:20 #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;
}
1
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
11.11.2015, 18:21 #4
Проще считать в цикле символами.
0
Obi1
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 3
11.11.2015, 19:01  [ТС] #5
Ребята спасибо!
P.S:
nmcf
На счет цикла додумал уже после отправки сообщения
Goldutop
Функции ещё толком не изучил, но спасибо, запомнил!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2015, 19:01
Привет! Вот еще темы с ответами:

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...

Изменение отдельных символов в массиве "std::string" - C++
Добрых времени суток, форумчане! Я тут решил переписать свой криптовальщик с GML на C++ и у меня возникла следующая проблема: мне нужно в...

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.11.2015, 19:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru