Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

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

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

Author24 — интернет-сервис помощи студентам
Как ввести из консоли строку известной длины? Потоком.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2014, 20:11
Ответы с готовыми решениями:

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

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

Как ввести строку в консоли без использования типа string
Как ввести строку в консоли без использования типа string (в array of char) и без нажатия ентер...

Как указать в коде массив без известной длины и содержимого?
Есть массив, но не указаны элементы и длинна, как это вывести в код?

8
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
23.10.2014, 21:20 2
'istream::read' прочитает заранее заданное количество символов. А уж доделать их до строки труда не составит.

Вопрос в том, что именно надо.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
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
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
23.10.2014, 21:30  [ТС] 4
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
'istream::read' прочитает заранее заданное количество символов. А уж доделать их до строки труда не составит.
Вопрос в том, что именно надо.
Ввести с клавы шестнадцатеричный ключ ксорки.
0
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
23.10.2014, 21:37 5
Тогда уточнение: вам нужно прочитать строку точно заданной длины? Или строку не более заданной максимальной длины?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.10.2014, 07:52  [ТС] 6
Точно заданной длины. Можно в массив с базовым типом char.
0
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
24.10.2014, 09:33 7
Тогда без вопросов - метод 'read' входного потока.

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

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

Решение

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

В смысле что 'isteram::read' сам не вставляет терминальный ноль. Я его зарезервировал специально для того, чтобы получить в результате именно С-строку с нуль-терминатором в конце. Если вам это не нужно, то и место резервировать не нужно.
0
24.10.2014, 10:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2014, 10:32
Помогаю со студенческими работами здесь

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

Ввести n строк с консоли. Вывести на консоль строки, длина которых меньше средней , также их длины
Всем привет! помогите пожалуйста переделать код под BufferedReader. Ввести n строк с консоли....

Ввести n строк с консоли. Вывести на консоль строки, длина которых меньше средней , также их длины
Всем привет! помогите пожалуйста решить несколько задач 3 . Ввести n строк с консоли. Вывести на...

Ввести строку произвольной длины
Ввести с помощью клавиатуры строку произвольной длины. Из исходной строки создать новую, у которой...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru