Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64

Организовать ввод слов с клавиатуры в массив

14.09.2012, 00:12. Показов 6611. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как организовать ввод слов с клавиатуры в массив таким образом, что-бы каждое слово помещалось в новую строку? Подскажите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2012, 00:12
Ответы с готовыми решениями:

Организовать ввод 8 целых чисел с клавиатуры, используя массив, и вывести на экран элементы массива больше 1
Организовать ввод 8 целых чисел с клавиатуры используя массив и вывести на экран элементы массива больше 1 - Turbo Pascal

Организовать ввод данных с клавиатуры
помогите разобраться с заданиями. я не изучал VB, и не знаю как работать с формами. Меня попросили помочь. С синтаксисом возможно и сам...

Как лучше организовать ввод с клавиатуры?
здравствуйте что лучше для ввода с клавы класс Sccanner или этот код BufferedReader reader = new BufferedReader(new...

15
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 00:18
C++
1
2
3
4
5
6
7
char strings[ 5 ][ 256 ] = {{ '\0' }};
 
for ( std::size_t i = 0; i < 5; i++ )
   std::cin >> strings[ i ];
 
for ( std::size_t i = 0; i < 5; i++ )
   std::cout << strings[ i ] << std::endl;
1
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 00:34  [ТС]
Дело в том, что я пробовал уже аналогичным образом, но тут получается необходимый ввод 5 слов. Как сделать так, что-бы кол-во слов не ограничивалось?
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 00:41
C++
1
2
3
4
5
for ( std::size_t i = 0; std::cin >> strings[ i ]; i++ )
   ;
 
std::cin.clear();
std::cin.sync();
Но тут опять же, не больше 5 слов, так как мы выделили память всего лишь под 5 строк. Можно так же воспользоваться классами string и vector.

C++
1
2
3
4
5
6
7
8
9
10
11
std::vector< std::string > strings;
std::string tempString;
 
while ( std::cin >> tempString )
   strings.push_back( tempString );
 
std::cin.cleare();
std::cin.sync();
 
for ( std::size_t i = 0; i < strings.size(); i++ )
   std::cout << strings[ i ] << std::endl;
ADD: для окончанию ввода в обоих случаях нужно ввести вместо нового слова комбинацию EOF ( ctrl + z в Win );
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 01:18  [ТС]
Нужно именно через массив. И представляет интерес ввод меньшего кол-ва слов. Допустим я хочу ввести 3 слова из 5 ти. Сохраняются ли они в массиве и просто не выводятся через cout? Если не сохраняются, то возможно ли использовать динамический массив, для достижения требуемого эффекта?
Дело в том, что массив нужен для решения задачи: подсчитать кол-во слов начинающихся на гласную и т.д. при условии, что программа читает по одному слову за раз Массив нужен для выделения первой буквы.Ну и решение максимально простыми средствами, точнее с использованием азов. Я решил ее несколькими способами, но они кажутся слишком громоздкими.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 01:23
А ну тогда Вам совершенно не нужен массив под слова, этого ведь не сказано в задачи. Все делается очень просто:
C++
1
2
3
4
5
6
char word[ 256 ]; //создаем массив символов для ввода слова
 
while ( std::cin >> word ) { //вводим следующее слово, или EOF ( ctrl + z в Win ) для завершения.
   //тут выполняем 
   //необходимые действия
}
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 01:56  [ТС]
Цитата Сообщение от Toshkarik Посмотреть сообщение
cin >> word
В условии сказано: ввод целой строки. А в данном случае после пробела оставшаяся инфа теряется и нужно вводить следующее слово за пробелом снова. Нужно следующее: написание строки, а уже ее загрузка в переработку по словам.Пробовал даже так, все работает, но самый "долгоиграющий"))
C++
1
2
3
4
5
6
7
8
9
char a[10];
cin>>a;
char a1[10]; 
cin>>a1;
.....
int x=0; 
if(a[0]=='a'||a[0]=='e'||...)
++x;
if(a1[0]=='a'||....) \\ и т.д.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 02:11
Цитата Сообщение от Valli1 Посмотреть сообщение
В условии сказано: ввод целой строки.
А это тогда что?
Цитата Сообщение от Valli1 Посмотреть сообщение
программа читает по одному слову за раз
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 02:23  [ТС]
Напишите программу которая читает по одному слову за раз..... Вводите слова: qwerty asdfg zxcvb.?
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 02:25
Все верно, Вам дали список слов. Это никак не означает что нужно вводить строку слов. Ясно написано ведь по одному слову за раз
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 02:36  [ТС]
Обозначает. Однозначно. Следует из стиля постановки задач в этой книге: Пратта С.Язык программирования С++ стр.305.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 02:40
Нет, не означает. Я не читал эту книгу, но если Вы дословно написали задание, то значит нужно вводить по одному слову за раз.
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 03:05  [ТС]
Возможно имеется ввиду, что при
C++
1
cin>>a;
слово пробелом который заменяется \0, преобразуется в строку и помещается в массив, затем следующее слово помещается в следующий свободный массив таким образом достигается поступление слов по одному, а не загоняется вся написанная строка как например в
C++
1
cin.getline(a,size);
Может просто некорректно сформулировано условие.
Написал дословно.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 03:09
Какое название темы этого упражнения?
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 03:40  [ТС]
Операторы ветвления и логические операции.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.09.2012, 03:48
Тогда могу сказать с вероятностью 99%, что имелось ввиду именно ввод по одному слову, здесь массив не нужен, просто вводите слова по одному, и увеличиваете счетчик, если попадается слово, в котором первая буква гласная. В конце просто выводите данное количество.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2012, 03:48
Помогаю со студенческими работами здесь

Как организовать ввод с клавиатуры в pc-lisp 3.0?
Здравствуйте! Я в общем-то хотел просто предоставить возможность ввода данных(списка) в консоли с клавиатуры для их запоминания и...

Как организовать ввод числа с клавиатуры?
как сделать ввод числа с клавиатуры?: ввод закнчивается # то есть ввожу число:102,1 ставлю # #-окончание ввода дальше это число...

Организовать ввод с клавиатуры строки длиной 10 символов
нужно организовать ввод с клавиатуры строки длиной 10 символов. Введённую информацию сохранить в файле с именем, совпадающим с номером...

Организовать ввод с клавиатуры одномерного динамического массива
Организовать ввод с клавиатуры одномерного динамического массива произвольной длины. Найти минимальный элемент массива и количество нулевых...

Можно ли организовать ввод разрядности массива с клавиатуры?
Можно ли организовать ввод разрядности массива с клавиатуры? Что-то вроде этого: program massiv_n; var a : array of Integer; ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru