Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
1

Как ввести из консоли строку известной длины?

23.10.2014, 20:11. Просмотров 845. Ответов 8
Метки нет (Все метки)

Как ввести из консоли строку известной длины? Потоком.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2014, 20:11
Ответы с готовыми решениями:

Как ввести строку неизвестной длины
Подскажите пожалуйста: у меня есть переменная: char chislo = ""; //Вводимое...

Как на C++ ввести с консоли строку с пробелами в тип string?
Нужно создать программу определяющую является ли строка палиндромом(т.е....

Ввести строку char с консоли
Добрый день! Помогите, пожалуйста. В моей программе используются...

Getline() не дает ввести строку в консоли
При использовании std::getline() для считывая строки с консоли, getline не дает...

Ввести строку произвольной длины. Распечатать середину 15 раз.
Доброго времени суток! Пожалуйста, подскажите решение: Ввести строку...

8
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4771 / 2428 / 680
Регистрация: 18.10.2014
Сообщений: 4,148
23.10.2014, 21:20 2
'istream::read' прочитает заранее заданное количество символов. А уж доделать их до строки труда не составит.

Вопрос в том, что именно надо.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8087 / 4940 / 1431
Регистрация: 29.11.2010
Сообщений: 13,398
23.10.2014, 21:25 3
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    char ch[3];
    std::cin.getline(ch, sizeof(ch));
    std::cout << ch;
}
Добавлено через 32 секунды
Нужно помнить, что последним элементом запишется нуль-символ
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
23.10.2014, 21:30  [ТС] 4
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
'istream::read' прочитает заранее заданное количество символов. А уж доделать их до строки труда не составит.
Вопрос в том, что именно надо.
Ввести с клавы шестнадцатеричный ключ ксорки.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4771 / 2428 / 680
Регистрация: 18.10.2014
Сообщений: 4,148
23.10.2014, 21:37 5
Тогда уточнение: вам нужно прочитать строку точно заданной длины? Или строку не более заданной максимальной длины?
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
24.10.2014, 07:52  [ТС] 6
Точно заданной длины. Можно в массив с базовым типом char.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4771 / 2428 / 680
Регистрация: 18.10.2014
Сообщений: 4,148
24.10.2014, 09:33 7
Тогда без вопросов - метод 'read' входного потока.

C++
1
2
char buffer[17] = {};
cin.read(buffer, 16);
Имейте только в виду, что стандартный ввод - line buffered - т.е. при чтении со стандартного клавиатурного ввода функция не вернет управление после того, как вы нажали 16 клавиш. Функция вернет управление только после того, как прочитано заданное количество символов и закончился ввод текущей строки.

Добавлено через 6 минут
При чтении из файлового потока такой проблемы (если это проблема), понятное дело, нет.
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
24.10.2014, 10:25  [ТС] 8
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Тогда без вопросов - метод 'read' входного потока.
C++
1
2
char buffer[17] = {};
cin.read(buffer, 16);
А место под терминальный ноль здесь обязательно?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4771 / 2428 / 680
Регистрация: 18.10.2014
Сообщений: 4,148
24.10.2014, 10:32 9
Лучший ответ Сообщение было отмечено taras atavin как решение

Решение

Цитата Сообщение от taras atavin Посмотреть сообщение
А место под терминальный ноль здесь обязательно?
Нет, не обязательно.

В смысле что 'isteram::read' сам не вставляет терминальный ноль. Я его зарезервировал специально для того, чтобы получить в результате именно С-строку с нуль-терминатором в конце. Если вам это не нужно, то и место резервировать не нужно.
0
24.10.2014, 10:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2014, 10:32

Ввести строку. Найти в функции в ней слово максимальной длины
Как засунуть всю задачу в функцию, так что бы вызвать ее с помощью меню?...

3. Ввести строку произвольной длины. Сосчитать количество слов в ней.
3. Ввести строку произвольной длины. Сосчитать количество слов в ней.

Ввести строку произвольной длины.Распечатать все '*' в ней с порядковыми номерами
Ввести строку произвольной длины.Распечатать все '*' в ней с порядковыми...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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