|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
||||||||||||
Как использовать данные из цикла вне его29.04.2014, 18:35. Показов 6621. Ответов 69
Метки нет (Все метки)
Уважаемые модераторы прошу удалит предыдущую тему.
Так как я изучаю программирование самостоятельно часто появляются вопросы на которых неоткуда получит ответ кроме как спросит на форуме. По этому решил создать тему и поставит все свои вопросы которые есть сейчас и появятся в будущем в этой теме. Буду очень благодарен если кто та из опытных программистов будет следит за темой. И так вопрос 1. Как использовать данные из первого цикла вне цикла. Пришлось обработать все на одном цикле при выводе получается полный хаос. код С++
Вопрос 2. Почему иногда переменное инициализированная перед циклом (for) не принимается в цикле. Пишет то переменная не инициализирована или не известна. Вопрос 3. Сегодня учил библиотечный тип bitset. Привлекло внимание следующее: Цитирую из книги:
bitset<32> bitvec2(0xffff);" Вопрос 4. Сегодня изучал итераторы. Написал программу которую показал на 1 вопросе. При использование вектора такой код не верен из за того что инициализированная значение r относится типу int а сам вектор типу string. Но при использование итератора не выдало не каких ошибок. И выводит некие символы. Не тарабарщина а определенные символы: Если написать Hello! получится смайлик, карточные знаки, символ ноты ( со звуком ). Если написать текст по больше получится эти символы и еще множество символов. Это ошибка программы или так и должно быт? код C++
0
|
||||||||||||
| 29.04.2014, 18:35 | |
|
Ответы с готовыми решениями:
69
В каком месте использовать конструктор - вне цикла или в цикле? printf не выводи данные вне цикла. |
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 03.05.2014, 11:26 [ТС] | |
|
TenGen, а как же взаимодействие? Vector уже сохранен, индексирован. Если ввести еще одну переменную не будет ли проблем? В данный момент программа не такая уж сложная и работает с несколькими буквами ( может текст но это мало имеет значение) Что если делать это в большой программе?
Я к тому что если в vector -e сохранены некие габаритные данные то, чтоб использовать другую переменную i надо будет переписать огромный участок кода чтоб программа видел все как есть. Или этого не потребуется?
0
|
|
|
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
|
|
| 03.05.2014, 11:31 | |
|
Altair42, vtext.push_back(f); не означает, что туда засунули переменную f. Это означает, что было использовано значение из переменной f. Вектору (да и другим вещам) без разницы, как называются передаваемые переменные и сколько у вас их объявлено.
И в вашем случае дополнительные циклы нужны. Вы ведь хотите вначале вывести все элементы строки, затем все элементы вектора.
0
|
|
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 03.05.2014, 11:47 [ТС] | |
|
Я не хочу вывести элементы из строки.
Я хочу. - сохранит элементы используя стринг для далнейшей работы с той библиотекой при необходимости. - сохранит элементы стринга в векторе ( Возможно измененные. А значит ввести в вектор элементы которых вводил с консоли ошибка) - сохранит элементы вектора переобразововая их. - вывести элементы стринга. - вывести элементы вектора. - вывести переобразованные элементы вектора. И на счет vtext.push_back(f); Я не засунул туда отделную переменную. Я просто присвоил элемент переменной text[i] к f. Ибо в векторе не мог сохранит элемент стиринга в изначальном виде (vtext.push_back(text[i]) выдавал ошибку). Наверно я не так выразился. Переменная i отслеживает и индексирует элементы string если ввести другую переменную i то программа не сможет видеть те элементы которые индексированы с помощью другой переменной i. Это как бы есть вы с ником TenGen в этом форуме, но и есть другой человек с таким же ником но совсем в другом форуме. Ваши данные не как не могут совпадать потому что у вас одинаковые ники. В польне вероятно что именно эта программа будет работать с новой переменной i ибо тут нет сложных операций. Это будет как сохранит вводимые с консоли данные отдельно в стринг и в вектор. А не так чтоб сохранит данные стринг, которые были сохранены с ввода с консоли, в вектор. То есть если добавит какую то операцию из библиотеки стринг то ваш вариант не сработает. ибо элементы стринга будут изменены, в векторе сохранится не измененные элементы стринга а изначально сохраненные в нем.
0
|
|
|
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
|
|
| 03.05.2014, 12:24 | |
|
Altair42, какова цель задачи? Вывести слово со всеми комбинациями букв в нижнем и верхнем регистре? Например, на входе получаем qwe, тогда выводим qwe, Qwe, qWe, QWe, qwE,QwE, qWE, QWE, так?
0
|
|
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 03.05.2014, 12:59 [ТС] | |
|
0
|
|
|
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
|
|
| 03.05.2014, 13:08 | |
|
Altair42, i ничего не индексирует. Это лишь удобный итератор для цикла. text[i] возвращает значение элемента с индексом i. Если вы напишете int t = 5; cout << text[t] << text[i] << endl; для программы text[t] будет таким же вызовом, как и text[i]
0
|
|
|
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
|
|
| 03.05.2014, 13:14 | |
|
Altair42, т.е. основная задача заключается в сохранении в векторе всех стрингов, с различными комбинациями регистров букв в них?
0
|
|
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 03.05.2014, 13:17 [ТС] | |
|
TenGen, да я в курсе. Именно в той программе именно i отвечает за индекс элемента. если добавит другую переменную i тот и не сможет отвечать за индекс i который был введен в цикле.
text[i] и text[i] в этом случае разные вещи. Первый i отвечает за индекс элемента текста. Второй i который был введен вне диапазона видимости цикла. Не за что не отвечает, а значит text[i] ( i введено вне цикла) не ровно text[i] (i введен в цикле). Добавлено через 1 минуту Denis123456789, задач там 3. - Сохранит данные, которых ввели через консол в стринге. - сохранит стринг в векторе. - изменит вектор. вывести стринг, вектор, измененный вектор по отделности.
0
|
|
|
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
|
||||||
| 03.05.2014, 13:18 | ||||||
|
Altair42, у вас переменная i, объявленная в цикле, будет существовать только на время работы цикла. То есть переменные i в коде
0
|
||||||
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 03.05.2014, 13:24 [ТС] | |
|
А если объявить итератор глобальным? Это может сработать? Ну типа
for(string::size_type (public i)..... Добавлено через 1 минуту TenGen, друг мой проблема в том что мне нужно чтоб первый и видел вторую. То есть мне надо чтоб они пересекались.
0
|
|
|
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
|
|
| 03.05.2014, 13:26 | |
|
Altair42, тогда конечно, объявите int i; вне цикла. В таком случае цикл у вас будет for (i = 0; i < 10; i++).
0
|
|
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 03.05.2014, 13:31 [ТС] | |
|
Объясню по другому.
Я ввел слово "Hello" Сохранил это слово в string. Изменил это слово добавив туда TenGen. Теперь надо сохранит "Hello Tengen" в vector. Далее надо изменит вектор чтоб все элементы вектора были в верхнем регистре. При этом сохранит копию. Вывести стринг, вектор, измененный вектор по отдельности. Добавлено через 33 секунды TenGen, а так точно будет работать?
0
|
|
|
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
|
||||||
| 03.05.2014, 17:02 | ||||||
|
Altair42, так:
0
|
||||||
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
||||||
| 07.05.2014, 18:09 [ТС] | ||||||
|
Вопрос. Почему данная программа
0
|
||||||
|
|
|
| 07.05.2014, 18:29 | |
|
Altair42, а что не так? Выводит адрес первого и второго массива. А ты ожидал что-то другое? Что, если не секрет?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 07.05.2014, 18:31 | |||||||
|
Чтобы научить std::cout выводить массив нужно добавить свой оператор <<, например так:
0
|
|||||||
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 07.05.2014, 19:38 [ТС] | |
|
DrOffset, я думал в фигурных скобках показывается элементы массива.
int ia1[] = {1, 33, 4, 5, 7, 8, 12}; И при выводе должен показать эти элементы. Добавлено через 5 минут На счет ai[ix+1]. Я думал [ix] это элемент массива. Как в векторе. DrOffset, вы можете дат полный код? Я хотел бы посмотреть что оно делает. Этот код не компилируеться. Наверно чего та не хватает ошибка в template <size_t N> std::ostream & operator <<(std::ostream & out, int const (& arr)[N]) Добавлено через 1 минуту Kuzia domovenok, я хотел вывести массив а не его адрес.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 07.05.2014, 19:56 | ||||
|
0
|
||||
|
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
|
|
| 07.05.2014, 20:39 [ТС] | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 07.05.2014, 20:44 | |
|
0
|
|
| 07.05.2014, 20:44 | |
|
Объявление внутри цикла или вне его? Как из цикла вывести данные для другого цикла?
Как сделать переменную, инициализированную в цикле for, досупную вне этого цикла? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки.
Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён".
Изменено отображение буквы Й.
Добавлена. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|