Задать вопрос
@Karapolo

Как ввести неопределённое количество строк С++?

Здравствуйте. Сразу оговорюсь, я только начала изучать строки, я не знаю векторов и много еще чего... Нужно ввести неопределенное количество строк. Проблема в том, что я не знаю как это осуществить. Моих знаний явно не хватает для этого. Пожалуйста, помогите.
  • Вопрос задан
  • 1932 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 2
Такое условие означает, что вам нужно со строкой работать посимвольно, а не писать её всю в память, потому что памяти может не хватить.
Ответ написан
Therapyx
@Therapyx
Data Science
смотря на сколько привередливый проф. Может быть реально как сказал Алексей, но
обычно в универе такие ключевые слова как "неопределенное" означает что-то динамическое. Т.е. Вектор.
Для самых отбитых можно сделать функцию буфера, т.е. если ветор имеет более "х" строк, то выкачать это в фаил (но не думаю, что это потребуется).
А алгоритм в принципе простой, надо только перевести в код

Инициализируй переменную статуса меню
Задекларируй Вектор, куда будут попадать все данные
Инициализируй переменные для статистики (если их много, желательно сделай отдельный класс, а на этом месте будет обьект этого класса).

напиши while loop и используй сканнер, который добавляет строки в вектор до тех пор, пока к примеру пользователь не нажмет 0, где 0 будет считаться выходом из программы, т.е. break

тут выбор, или ты сразу после добавления строки делаешь статистику, или после того как пользовательно нажмет кнопку "0" и тогда для всего вектора.
Если же второе, то делаешь опять for loop на вектор и на каждую строку пишешь нужную обработку статистики.

Вывод данных: тут уж проблем с статистикой из класса быть не должно.

Проблему я вижу в другом, "я только начала изучать строки, я не знаю векторов и много еще чего"
Как ты это писать то собираешься? Готовься к малому сну )) А выучить это надо, я думаю с такими заданиями дальше у вас будет по нарастающей. Пропустишь это - потом опустишь вообще руки.
Конкретно с некоторыми позициями тут помогут спокойно. Писать же все... Для этого есть фриланс.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@12rbah
Напишите задачу полностью, т.к. непонятно что вам нужно, но как вариант такие задачи решать через буфер. Условно вы копируете файл в 50гб, но вместо считывания 50гб в память, вы считываете по 1мб и запоминаете позицию пока копирование не закончится.
Ответ написан
Комментировать
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Если тут произвольная длина в смысле не "вам надо считать ровно 5 символов", то можно читать в std::string. Оно само выделит достаточно памяти.

Вот так прочтется одно слово до пробела (или конца файла):
std::string s;
std::cin >> s;


Вот так прочтется строка целиком до перевода строки (или конца файла):
std::getline(cin, s);

Потом можно по string проходится как по массиву, от 0 до s.length()-1.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы