Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12
#1

Строковый массив и цикл for - C++

07.10.2012, 16:56. Просмотров 517. Ответов 4
Метки нет (Все метки)

Всем привет. Сколько раз не пытался, не получается сделать так, чтобы после проверки условия цикл пошел повторно и при этом счетчик строковых массивов увеличивался на единицу. Прилагаю код ниже:
Код
#include <iostream>
using namespace std;

main()
{
      const int name = 5;
      const int mails = 5;
      const int passes = 5;
      string z;
      int p = 1;
      string pass[passes] = {"123", "1234", "12345", "123456", "1234567"};
      string user[name] = {"Mark", "Tom", "Scott", "Travis", "Sam"};
      string mail[mails] = {"mark@gmail.com", "tom@yahoo.com", "scott@hotmail.com", "travis@apple.com", "sam@gmail.com"};
    // string currentuser;
    cout << "There are 5 usernames in our database, enter a valid name for getting a password:" << endl;
    for (int i=0; i<name; ++i)
    {
       // cout << "attempt number " << i << endl;
        cout << "Pass for user "; cout << user[0]  << endl;
        getline(cin, z);
        if (z == pass[0]) 
        {
            cout << mail[0] << endl;
            user[0] = p;
            mail[0] = p;
            pass[0] = p;            
        } 
    } 
    system("pause");
}
Условие задачи: Создать программу, которая будет запрашивать пароль логина (последовательно из 5 существующих) и выдавать их e-mail в случае правильно ввода пароля. Если было введено не правильно, попросит ввести повторно, но учитывать надо то, что общей попытке ввода пароля для всех логинов не должно превышать 3, после чего программа закроется.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 16:56     Строковый массив и цикл for
Посмотрите здесь:

Динамический строковый массив - C++
Здравствуйте. Появилась проблема. Пытаюсь реализовать программу, которая считывает строку в динамический массив. Заранее количество...

Двумерный строковый массив - C++
Доброе время суток! Подскажите, пожалуйста, как правильно создать и заполнить двумерный строковый массив! Пробовал делать так: ...

Строковый динамический массив - C++
Как считать две строки в динамический строковый массив, чтобы потом можно было работать с этими строками и копировать из них нужные символы...

Строковый Массив с циклом - C++
Помогите, ошибка в создании строкового Массива. Собственно, данный код связан с as3, но здесь ошибка в плане C++.. Необходимо, чтоб...

Строковый массив в int массив - C++
Нужно ввести длинное число. Хочу сделать через char-массив, а потом присвоить значения индексов char-массива для int-массива, т.к. с вторым...

Строковый массив произвольного размера - C++
Можно ли каким-то образом образом написать программу, в которой будет вводиться строковый массив произвольной длины? Если бы это был...

Как описать пустой строковый массив - C++
Скажите пожалуйста, как описать пустой строковый массив, если пока неизвестно сколько букв будет в слове, которое запишется в данный массив?

Считать содержимое файла в строковый массив - C++
Добрый день. Я подсчитала кол-во строк в файле (переменная x). Далее создаю массив с подсчитанной размерностью. ifstream file...

Создать и заполнить двумерный строковый массив - C++
помогите создать и заполнить двумерный строковый массив на с++

Строковый двумерный массив с произвольным количеством элементов - C++
Здравствуйте. К примеру, в текстовом файле буду слова, которыми нужно заполнить массив, но не известно, сколько будет этих самых слов....

Как задать двумерный строковый-цифренный массив - C++
как задать двумерный строковый-цифренный массив и какие библиотеки при этом подключать?

Строковый массив (описание, инициализация, передача в функции) - C++
Здравствуйте! Простите за настолько банальный вопрос, но никак не могу разобраться со строковыми массивами. Что интересует: 1)...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:01     Строковый массив и цикл for #2
вам нужно 2 счетчика. один для прохождения по всем логинам, а второй для учета неверных попыток.
Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12
07.10.2012, 17:08  [ТС]     Строковый массив и цикл for #3
Цитата Сообщение от I.M. Посмотреть сообщение
вам нужно 2 счетчика. один для прохождения по всем логинам, а второй для учета неверных попыток.
А как сделать так, чтобы индексы массивов увеличивались на единицу?
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:18     Строковый массив и цикл for #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0, j = 0; i < name_size && j!=3; ++i)
{
    std::string test_pas;
    std::cin >> test_pas;
 
    if(test_pas == password[i])
    {
        std::cout << mail[i] << std::endl;
    }
    else
    {
        j++;
                      //i--; //если надо еще раз запросить пароль для того же логина
    }
}
это упрощенная версия. Подставьте сюда имена своих переменных и массивов, сделайте дополнительные cout, если надо и тд.
Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12
07.10.2012, 17:49  [ТС]     Строковый массив и цикл for #5
Спасибо, вам плюсанул =]

Вот полный исходный код, может кому пригодится.
Код
#include <iostream>
using namespace std;

main()
{
      const int name = 5, mails = 5, passes = 5;
      string z;
      int p = 1, b = 0;
      string pass[passes] = {"123", "1234", "12345", "123456", "1234567"};
      string user[name] = {"Mark", "Tom", "Scott", "Travis", "Sam"};
      string mail[mails] = {"mark@gmail.com", "tom@yahoo.com", "scott@hotmail.com", "travis@apple.com", "sam@gmail.com"};
      cout << "There are 5 usernames in our database, enter a valid name for getting a password:" << endl;
      for (int i = 0, j = 0; i < name && j!=3; ++i)
      {
            cout << "Password for user "; cout << user[i]  << endl;
            std::string z;
            getline(cin, z);
            if (z == pass[i]) 
            {
                  cout << "Entered password is correctly, here's his e-mail: " << mail[i] << endl;         
            } 
            else
            {
                  j++;
                  i--;
                  cout << "Invalid login, please try again " << endl;
            }
      } 
      system("pause");
}
Yandex
Объявления
07.10.2012, 17:49     Строковый массив и цикл for
Ответ Создать тему
Опции темы

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