Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
#1

Как использовать данные из цикла вне его - C++

29.04.2014, 18:35. Просмотров 1789. Ответов 69
Метки нет (Все метки)

Уважаемые модераторы прошу удалит предыдущую тему.

Так как я изучаю программирование самостоятельно часто появляются вопросы на которых неоткуда получит ответ кроме как спросит на форуме. По этому решил создать тему и поставит все свои вопросы которые есть сейчас и появятся в будущем в этой теме.

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

И так вопрос 1. Как использовать данные из первого цикла вне цикла. Пришлось обработать все на одном цикле при выводе получается полный хаос.

код С++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int main()
{ setlocale (LC_ALL , "Russian");
    string text;
    string f;
    vector<string> vtext;
    
    std::cout << " Введите текст " << std::endl;
    if(std::getline(std::cin, text))
     
    int s = 5;
        for(string::size_type i = 0; i != text.size(); i++)
        { f = text[i];
        
        std::cout << text[i] << " ";
        
        vtext.push_back(f);
        std::cout << f << " ";
        text[i] = toupper(text[i]);
        std::cout << text[i] << " ";
        
    }
    int r = 2;
    char c = 'a';
        for(vector<string>::iterator it = vtext.begin(); it != vtext.end(); it++)
        {
    *it = r;
    r++;
    *it = c;
    c++;
    std::cout << *it << "-";
    }
        _getch ();
        
        return 0;
    }


Вопрос 2. Почему иногда переменное инициализированная перед циклом (for) не принимается в цикле. Пишет то переменная не инициализирована или не известна.

Вопрос 3. Сегодня учил библиотечный тип bitset. Привлекло внимание следующее:
Цитирую из книги:
" На машине с 32 - битовым типом unsigned long, шестнадцатеричное значение 0xffff представляется последовательностью из 16 битов, заполненных единицами , с последующими нулями до конца размера. Набор битов можно инициализировать с значением 0xffff следующим образом.
//набор bitvec1 меньше инициализирующего значения.
bitset<16> bitvec1(0xffff);
// размер набора bitvec2 и инициализирующая значение совпадают
bitset<32> bitvec2(0xffff);
Вот не понятно. Если 0xffff шестнадцатеричное то почему "// размер набора bitvec2 и инициализирующая значение совпадают
bitset<32> bitvec2(0xffff);"

Вопрос 4. Сегодня изучал итераторы. Написал программу которую показал на 1 вопросе. При использование вектора такой код не верен из за того что инициализированная значение r относится типу int а сам вектор типу string. Но при использование итератора не выдало не каких ошибок. И выводит некие символы. Не тарабарщина а определенные символы: Если написать Hello! получится смайлик, карточные знаки, символ ноты ( со звуком ). Если написать текст по больше получится эти символы и еще множество символов. Это ошибка программы или так и должно быт?
код C++
C++
1
2
3
4
5
6
7
8
9
10
int r = 2;
    char c = 'a';
        for(vector<string>::iterator it = vtext.begin(); it != vtext.end(); it++)
        {
    *it = r;
    r++;
    *it = c;
    c++;
    std::cout << *it << "-";
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 18:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как использовать данные из цикла вне его (C++):

В каком месте использовать конструктор - вне цикла или в цикле? - C++
Добрый день! Как писать правильнее? Ниже два примера: QStringList data; foreach(const QString &amp;category, categories) { data...

printf не выводи данные вне цикла. - C++
Здравствуйте! Проблема состоит в том,что если printf стоит внутри какого-нибудь цикла,то данные выводятся нормально,но если этот printf...

О том, почему нелюбим goto; как его правильно использовать; и чем в моем случае его можно заменить? - C++
Вот есть такой оператор всеми программистами нелюбимый. Goto называется. Говорят, что его использование всегда можно обойти и...

Как можно еще использовать std::placeholders вне в связки с std::bind? - C++
Добрый день! Как можно еще использовать std::placeholders вне в связки с std::bind?

Вывод результата вне цикла - C++
Написать программу, вычисляющую НОД (наибольший общий делитель) двух целых чисел Все работает,только вывод надо сделать вне цикла....

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...

69
Croessmah
Пришел
Эксперт CЭксперт С++
13759 / 7840 / 893
Регистрация: 27.09.2012
Сообщений: 19,254
Записей в блоге: 3
Завершенные тесты: 1
29.04.2014, 18:37 #2
Цитата Сообщение от Altair42 Посмотреть сообщение
По этому решил создать тему и поставит все свои вопросы которые есть сейчас и появятся в будущем в этой теме.
решил он... а как же
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
???
0
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
29.04.2014, 18:50  [ТС] #3
Часть кода которого показал в низу не работает. Точнее работает на половину. Сообщение выводит но не ждет ввода. Не могу понят почему. Спросил в другой теме именно на этот вопрос не ответили ( может времени не нашли)

код С++

Остальное находится тут
C++
1
2
3
4
if(num.size() % 2 != 0)
{std::cout << "Колличество эдлементов вектора не четное. Прошу добавит элемент в вектор для продолжение операции!\n";
if(std::cin >> n)
    num.push_back(n);}


Добавлено через 6 минут
Croessmah, Получается за каждый вопрос создать отдельную тему?
Можно посмотреть на этот как на один вопрос. Все вопросы вокруг одной темы. И пусть модератор отвечает на счет этого.
0
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 181
29.04.2014, 18:51 #4
Цитата Сообщение от Altair42 Посмотреть сообщение
C++
1
2
3
4
if(num.size() % 2 != 0)
{std::cout << "Колличество эдлементов вектора не четное. Прошу добавит элемент в вектор для продолжение операции!\n";
if(std::cin >> n)
 num.push_back(n);}
Не компилируется или компилируется и работает неправильно, или при работе выдает ошибку и завершается?
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 19:12 #5
Цитата Сообщение от Altair42 Посмотреть сообщение
Сообщение выводит но не ждет ввода. Не могу понят почему. Спросил в другой теме именно на этот вопрос не ответили ( может времени не нашли)
Гед там вопрос об этом?
Как делать я вам в той теме написал:
Ошибка VC++ или не понятно что
Почему так делать нужно, от вас вопроса не было, написали только, что этот код вам знаком (откуда мне знать, может и причина его применения известна?) и всё.
0
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
29.04.2014, 19:15  [ТС] #6
alsav22, Последний пост в той же теме.

Добавлено через 2 минуты
Denis123456789, Комилируется. Работает. Выводит сообщение при вводе не четного количества цифр. переходит на селдующий шаг не завершая функцию if ( не ждет ввода )
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 19:16 #7
Цитата Сообщение от Altair42 Посмотреть сообщение
Вопрос 2. Почему иногда переменное инициализированная перед циклом (for) не принимается в цикле. Пишет то переменная не инициализирована или не известна.
Пример кода.
0
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
29.04.2014, 19:17  [ТС] #8
alsav22, Не обижайся друг. Я подумал у тебя просто нет времени. Я понимаю что болшенство из вас заняты.
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 19:24 #9
Цитата Сообщение от Altair42 Посмотреть сообщение
Последний пост в той же теме.
Цитата Сообщение от Altair42 Посмотреть сообщение
Не могу понят, почему программа переходит к выполнению след функции когда функция if не завершена?
Ответ: потому что не сделали то, что написано в 7 посте.

Добавлено через 2 минуты
Почему не останавливается цикл по требованию?

Добавлено через 4 минуты
Цитата Сообщение от Altair42 Посмотреть сообщение
Это ошибка программы или так и должно быт?
Как написали, так и работает.
0
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
29.04.2014, 19:29  [ТС] #10
alsav22,
Не могу показать пример ибо такое случается не постоянно. Иногда цикл просто не видит инициализированную переменную перед собой.
На счет 7-го поста той темы. Я не понимаю тот код. Если перевести код на человеческий язык, там говорит: Запомни "n" в конец вектора при вводе, очисти кеш ( или буфер) от ввода, перейди на следующую строку при нажатие энтер. Но сам код cin.clear(), cin.get() мне не знаком.
1- я не думал что от этого что та изменится. Вы могли бы на той теме написать что функция if не работает из за этого. Я просто скопировал бы.
2- не люблю использовать то чего сам не мог бы делать. Ибо не знал об этом.
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 19:36 #11
Неправильно вас процитировал:
Цитата Сообщение от Altair42 Посмотреть сообщение
Этот код мне не знаком. Пока следую программе книги с которого учу с++. Как то перешел с циклов на массивы ( видеоуроки) 3 дня сидел над заданием. Спасибо за совет.
Цитата Сообщение от Altair42 Посмотреть сообщение
Я подумал у тебя просто нет времени.
Не в этом дело. Вам предложили вариант, чтобы код нормально работал. Реакция такая:
Цитата Сообщение от Altair42 Посмотреть сообщение
Этот код мне не знаком. Пока следую программе книги с которого учу с++.
Цитата Сообщение от Altair42 Посмотреть сообщение
Исправил все. Кроме
Что на это можно сказать? Продолжайте дальше следовать книге...

Добавлено через 1 минуту
Цитата Сообщение от Altair42 Посмотреть сообщение
Не могу показать пример ибо такое случается не постоянно.
О чём тогда вопрос? Как случится покажите код, получите ответ.
0
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
29.04.2014, 19:36  [ТС] #12
Цитата Сообщение от alsav22 Посмотреть сообщение
Как написали, так и работает.
Меня запутал то что я там использовал переменную типа инт чтоб присвоит его к стринг. Обычно попытка такого присваивание выдавало ошибку ( до использование итерации).
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 19:38 #13
Цитата Сообщение от Altair42 Посмотреть сообщение
Меня запутал то что я там использовал переменную типа инт чтоб присвоит его к стринг.
А зачем int присваивать string? Чтобы потом вопросы на форуме задавать?
0
Altair42
3 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
29.04.2014, 19:39  [ТС] #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Не в этом дело. Вам предложили вариант, чтобы код нормально работал. Реакция такая:
Прости но. Как тебе понравится если за тебя кто та будет жевать еду?
Без обид только. Когда я получаю готовый код чтоб использовать в программе я чувствую себя так же.
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 19:41 #15
Цитата Сообщение от Altair42 Посмотреть сообщение
Запомни "n" в конец вектора при вводе
Где там вектор, и где там запомни? Читайте дальше книгу.
0
29.04.2014, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2014, 19:41
Привет! Вот еще темы с ответами:

как объявить правильно tr и как его использовать при вызове функции? - C++
main.cpp case 8: cout &lt;&lt; &quot;Firs trapec # is: &quot;; cin &gt;&gt; k; k = k - 1; cout &lt;&lt; &quot;Second trapec # is: &quot;; cin &gt;&gt; j;...

Как использовать данные из файла заранее созданного? - C++
Начал изучать файлы, и здесь не знаю, например занес массив чисел в файл закрыл файл и теперь я хочу икористаты эти числа для Других...

метод класса,как использовать его - C++
в классе есть функция как ее вызвать из главной функции?

Указатель this - как и когда его использовать - C++
Объясните, зачем нужен указатель this, как его применять в классах, если можно небольшой пример.


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

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

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