1 / 1 / 2
Регистрация: 30.11.2014
Сообщений: 67
1

не получается вызвать пользовательскую функцию

14.03.2017, 21:19. Показов 1206. Ответов 5
Метки нет (Все метки)

есть пользовательская функция для ввода определенной строки

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

любые замечания и помощь приветствуются)

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
void enter_password ()
{
 
    system("cls");
    while (!flag)
    {
    
        cout << endl << "ВВЕДИТЕ ПАРОЛЬ В ВИДЕ:        пара(цирфа-буква), разделенные символом @ \n/не менее 8 символов/" << endl;
 
        cin.getline(str, 16); 
        l = strlen(str);
 
        if (l < 8)
            cout << endl << "ОШИБКА!!! Вы ввели слишком короткий пароль!" << endl;
        else 
            flag = true;
 
    }
 
}
 
 
 
int main ()
{
 
    setlocale(LC_ALL, "Russian");
 
    enter_password ();
 
        int k = 0;
        for (int i = 0; i < l; i++)
        {
 
            k++;
            if (k == 3)
                if (str[i] == '@')
                    k = 0;
                else
                    {k = 0; enter_password (); break;}
 
            if (i % 2 == 0)
                if (str[i] == 1||2||3||4||5||6||7||8||9||0)
                    continue;
                else
                    {enter_password (); break;}
            else
                if (str [i] == 'a'||'b'||'c'||'d'||'e'||'f'||'g'||'h'||'i'||'j'||'k'||'l'||'m'||'n'||'o'||'p'||'q'||'r'||'s'||'t'||'u'||'v'||'w'||'x'||'y'||'z')
                    continue;
                else
                    {enter_password (); break;}
            
        }
 
    return 0;
 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2017, 21:19
Ответы с готовыми решениями:

Не получается вызвать функцию
Есть функция &quot;void __fastcall TForm1::Image2MouseDown(TObject *Sender, TMouseButton Button, ...

Не получается вызвать функцию в switch
Помогите пожалуйста. Начал писать программу на С++, для отображения аккаунтов из файла на консоль,...

Не получается вызвать функцию asinh
Доброе время суток. Пожалуйста помогите вызвать функцию asinh гиперболический арксинус.

Как правильно вызвать пользовательскую ф-цию
Выдает ошибку, связанную с передачей массива, как аргумента ф-ции. #include &lt;cstdlib&gt; #include...

5
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
14.03.2017, 21:26 2
Строки 43 и 48 для начала исправь.
1
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
14.03.2017, 21:26 3
Цитата Сообщение от Dmitry_V Посмотреть сообщение
if (str [i] == 'a'||'b'||'c'||'d'||'e'||'f'||'g'||'h'||'i'||'j'|| 'k'||'l'||'m'||'n'||'o'||'p'||'q'||'r'||'s'||'t'|| 'u'||'v'||'w'||'x'||'y'||'z')
это агония и это так не работает. чар будет неявно скастан к булу и соответственно "что угодно ИЛИ тру всегда равно тру"
C++
1
str[i] >= 'a' && str[i] <= 'z'
1
1 / 1 / 2
Регистрация: 30.11.2014
Сообщений: 67
14.03.2017, 21:32  [ТС] 4
хах, спасибо, исправил, но вызов функции почему-то все равно игнорируется
он просто проходит спокойно весь фор, даже если введен бред
0
Модератор
Эксперт С++
12639 / 10133 / 6102
Регистрация: 18.12.2011
Сообщений: 27,169
14.03.2017, 22:12 5
Лучший ответ Сообщение было отмечено Dmitry_V как решение

Решение

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <ctype.h>
using namespace std;
char str[100];
int L;
void enter_password()
{
    system("cls");
    while (true)
    {
        cout << endl << "ВВЕДИТЕ ПАРОЛЬ В ВИДЕ:        пара(цирфа-буква), разделенные символом @ \n/не менее 8 символов/" << endl;
        cin.getline(str, 16); 
        L = strlen(str);
        if (L < 8)
            cout << endl << "ОШИБКА!!! Вы ввели слишком короткий пароль!" << endl;
        else 
            break;
    }
}
 
int main ()
{
    setlocale(LC_ALL, "Russian");
    enter_password();
    int k = 0;
    for (int i = 0; i < L; i++)
    {
        k++;
        if (k == 3)
        {
            if (str[i] == '@')
                k = 0;
            else
            {
                k = 0; 
                enter_password(); 
                break;
            }
        }
        if (i % 2 == 0)
        {
            if (isdigit(str[i]))
                continue;
            else
            {
                enter_password(); 
                break;
            }
        }else
        {
            if (isalpha(str [i]))
                continue;
            else
            {
                enter_password(); 
                break;
            }
        }
    }
    system("pause");
    return 0;
 
}
1
1 / 1 / 2
Регистрация: 30.11.2014
Сообщений: 67
14.03.2017, 22:34  [ТС] 6
спасибо, Вы ювелир)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2017, 22:34
Помогаю со студенческими работами здесь

Вызвать пользовательскую функцию в меню
Если добавить следующий код в def initUI(self), то появится два меню: первая с именем Exit, а...

Не могу вызвать пользовательскую функцию
Всем привет. Народ, написал я вот такую функцию - она возвращает количество дней месяца даты,...

Не могу вызвать пользовательскую функцию в ячейке на листе
Добрый день. Есть код расчета эксп. взв. скользящей средней, но что-то он не работает. Кто-нить...

Не могу вызвать пользовательскую функцию в ячейке на листе - VBA
Чего-то день сегодня не задался:) Я написал свою функцию: Function rbc(x,y) as Double ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru