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

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

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

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

07.10.2012, 16:56. Просмотров 518. Ответов 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++):

Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) - C++
Подскажите, как объявить пустой глобальный строковый массив из 16 элементов? в качестве элементов будут указаны пути к графическим...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:01 #2
вам нужно 2 счетчика. один для прохождения по всем логинам, а второй для учета неверных попыток.
Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12
07.10.2012, 17:08  [ТС] #3
Цитата Сообщение от I.M. Посмотреть сообщение
вам нужно 2 счетчика. один для прохождения по всем логинам, а второй для учета неверных попыток.
А как сделать так, чтобы индексы массивов увеличивались на единицу?
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:18 #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  [ТС] #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");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 17:49
Привет! Вот еще темы с ответами:

Строковый массив, прайс лист - C++
Всем здравствуйте, задали в университете задание по c++, нужно с файла считать название продукта и его цену, потом нужно выбрать, какую...

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.10.2012, 17:49
Ответ Создать тему
Опции темы

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