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

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

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

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

07.10.2012, 16:56. Просмотров 511. Ответов 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++ Строковый массив (описание, инициализация, передача в функции)
C++ Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)
Как описать пустой строковый массив C++
Строковый массив в int массив C++
Динамический строковый массив C++
C++ Строковый динамический массив
Считать содержимое файла в строковый массив C++
C++ Строковый Массив с циклом
Строковый двумерный массив с произвольным количеством элементов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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