Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330

Cделать проверку по ключу

18.04.2014, 22:29. Показов 1907. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста разобраться. В программе нужно сделать проверку по ключу, то есть если ключ который находится в файле .txt совпадает с тем, что находится в коде в программе и занесён в переменную, то программа продолжает работать.

Есть такой вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        string s1; //Переменная будет считывать строку 
        string key1 = ("222222","111111", "123456"); //переменная в которой ключи
 
    ifstream in ("D:\\key.txt"); //Открываем файл для считывания информации 
    in>>s1; //считываем строку
    in.close(); // Закрываем файл
 
    if (key1 == s1) //делаем проверку, если любая строка из переменной key1 равняется переменной s1 (тексту который находится в файле), то пишем "пароль подходит"
    {
        cout << "пароль подходит\n";
    }
    else
    {
        cout <<"пароль не верный\n";
        cout << "пароль в файле: " << s1 << "\n" << "пароль в переменной: " << key1 << "\n\n";
    }
Проблема в том, что переменной key1 всегда присваивается строка 123456, первые две она вообще не видит и соответственно если в файл txt занесен текст "222222" или "111111" программа выдает сообщение, что пароль не верный..
Может кто нибудь знает где в коде ошибка?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2014, 22:29
Ответы с готовыми решениями:

Cделать проверку на истинность всех элементов массива bool
есть массив из bool как сделать проверку на истинность всех элементов массива?

Cделать проверку reCAPTCHA
Здравствуйте. У меня никак не получается сделать проверку на правильные введённые слова в reCAPTCHA. Когда я делал отдельно, только...

MyDictionary: сортировка по ключу, поиск значения по ключу, поиск ключа по значению
Задан интерфейс ІMyDictionary. Его реализует класс MyDictionary, который позволяет определить коллекцию пар &quot;ключ-значение&quot;. ...

7
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
18.04.2014, 22:31
Nalik, делайте массив, а не 1 переменную. Иначе у вас происходит 3 присвоения и по итогу key1 равен последнему ключу.
C++
1
string key1[3] = {"222222","111111", "123456"};
0
18.04.2014, 22:35

Не по теме:

string - класс, а не оператор

0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
18.04.2014, 22:39  [ТС]
В этом случае подчеркивает знак ">>" в коде:
C++
1
in>>s1; //считываем строку
и соответственно выдает ошибку:
while trying to match the argument list '(std::ifstream, std::string [3])'

Добавлено через 24 секунды
MastAKK, буду знать, спасибо)

Добавлено через 3 минуты
Первым делом я использовал массив, но отказался, так как выдает ошибку соответствия классов(
0
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
18.04.2014, 22:39
Nalik, а вот это не должно быть. Покажите, как сейчас выглядит код
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
18.04.2014, 22:44  [ТС]
Вот)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    string s1[3]; //Переменная будет считывать строку 
    string key1[3] = {"222222","111111", "123456"};
    
 
    ifstream in ("D:\\key.txt"); //Открываем файл для считывания информации 
    in>>s1; //считываем строку
    in.close(); // Закрываем файл
 
    if (s1 == key1)
    {
        cout << "пароль подходит\n";
    }
    else
    {
        cout <<"пароль не верный\n";
        cout << "пароль в файле: " << s1 << "\n" << "пароль в переменной: " << key1 << "\n\n";
    }
0
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
18.04.2014, 22:46
Nalik, переменную s1 как раз не надо делать массивом. Вы же читаете из файла только 1 пароль. Потому и выдавал ошибку, что вы неправильно к массиву обращались. Вы с массивами видимо не умеете работать?
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
19.04.2014, 00:11  [ТС]
К сожалению не приходилось с ними работать, исправил s1 на просто string, но ошибку теперь выдает в другом месте..
подчеркивает красным "=="
C++
1
if (key1 == s1)
я так понимаю, я снова как-то не правильно обращаюсь к массиву?
Пробовал так:
C++
1
if (s1 (key1))
и так
C++
1
if (s1 [key1])
и ещё несколько вариантов, но всё не работает

подскажите пожалуйста в чём ошибка..

Добавлено через 11 минут
а если я пишу вот так:
C++
1
if (s1 == key1[3])
то программа ошибок не подчеркивает, но выдает ошибку при запуске с вариантами Break и Continue

Добавлено через 7 минут
Так заработало, но проблемы не решило..
C++
1
if (s1==key1[0], s1==key1[1])
В таком варианте, тоже учитывается лишь последнее значение, то есть если пароль в файле txt "222222", то выдаёт неверный пароль, если пароль в файле "111111", то пароль верный.. то есть проверяется только это:
s1==key1[1]

Добавлено через 40 минут
Подскажите пожалуйста как проверять текст из файла на соответствие с текстом по всему массиву и если в массиве есть одинаковый текст с текстом из файла, то выдавать, что пароль правильный?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2014, 00:11
Помогаю со студенческими работами здесь

Cделать перебор id-ов
есть ссылка: http//:fafaf.ru/index.php?id=1000 нужно сделать перебор id ов как это замутить? в цикле сделать перебор и...

cделать в шаблоне
Даны вещественные числа a,b,c,d,e,f.Переменноый S присвоить значение 1,если оба уравнения ах2 + bх + с = 0 и dx2 + ex + f = 0.для...

Что cделать лучше?
Есть сайт, который сейчас всегда в десятке по запросам поисковиков. По некоторым причинам этот сайт обслуживаться и раскручиваться не...

Cделать своп в файле
Делал своп в файле: $ dd if=/dev/zero of=/opt/swapfile bs=1M count=512 dd: не удалось открыть '/opt/swapfile': Отказано в доступе ...

Cделать структуру TRAIN
Необходимо сделать структуру TRAIN с полями: - название пункта назначения; - номер поезда; - время отправления. ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru