Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 28
1

Найти причины возникновения ошибки в коде и исправить эту ошибку

02.11.2016, 18:10. Просмотров 810. Ответов 4
Метки нет (Все метки)

Добрый вечер форумчане. Написал программу для генерации пароля.При генерации одного пароля всё отлично работает,но при генерации нескольких паролей почему то генерируется один и тот же. Помогите найти ошибку.
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <fstream>
#include <vector>
#include "time.h"
#include <string>
using namespace std;
 
vector<string> letters;
string passgen(int);
void init()
{
        letters.push_back("q");
        letters.push_back("w");
        letters.push_back("e");
        letters.push_back("r");
        letters.push_back("t");
        letters.push_back("y");
        letters.push_back("u");
        letters.push_back("i");
        letters.push_back("o");
        letters.push_back("p");
        letters.push_back("a");
        letters.push_back("s");
        letters.push_back("d");
        letters.push_back("f");
        letters.push_back("g");
        letters.push_back("h");
        letters.push_back("j");
        letters.push_back("k");
        letters.push_back("l");
        letters.push_back("z");
        letters.push_back("x");
        letters.push_back("c");
        letters.push_back("v");
        letters.push_back("b");
        letters.push_back("n");
        letters.push_back("m");
        letters.push_back("0");
        letters.push_back("1");
        letters.push_back("2");
        letters.push_back("3");
        letters.push_back("4");
        letters.push_back("5");
        letters.push_back("6");
        letters.push_back("7");
        letters.push_back("8");
        letters.push_back("9");
        letters.push_back("Q");
        letters.push_back("W");
        letters.push_back("E");
        letters.push_back("R");
        letters.push_back("T");
        letters.push_back("Y");
        letters.push_back("U");
        letters.push_back("I");
        letters.push_back("O");
        letters.push_back("P");
        letters.push_back("A");
        letters.push_back("S");
        letters.push_back("D");
        letters.push_back("F");
        letters.push_back("G");
        letters.push_back("H");
        letters.push_back("J");
        letters.push_back("K");
        letters.push_back("L");
        letters.push_back("Z");
        letters.push_back("X");
        letters.push_back("C");
        letters.push_back("V");
        letters.push_back("B");
        letters.push_back("N");
        letters.push_back("M");
}
string passgen(int len)
{
    string pass;
    srand (time(NULL));
    int rn = rand()%62;
    for(int i=0;i<len;i++)
    {
        rn = rand()%62;
        pass += letters[rn];
    }
 
    return pass;
}
int main()
{
    int len,num;
    string namefile;
    system("color a");
    init();
    std::cout<<"Enter len pass:"<<std::endl;
    std::cin>>len;
    std::cout<<"enter the number of passwords:"<<std::endl;
    std::cin>>num;
    std::cout<<"Enter file name:"<<std::endl;
    std::cin>>namefile;
    ofstream out(namefile);
    for(int j = 0;j < num;j++)
    {
    out << passgen(len)<<std::endl;
    }
    out.close();
    std::cout<<"The password is stored in "<<namefile<<std::endl;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2016, 18:10
Ответы с готовыми решениями:

Найти причины возникновения ошибки в коде и исправить эту ошибку
Подскажите пожалуйста, как исправить?

Найти причины возникновения ошибки в коде и исправить эту ошибку
Нужно найти ошибку. При N&gt;0 выдает только заголовок таблицы. При N=0 так же, хотя должен выдавать...

Наследование шаблонных классов: найти причины возникновения ошибки в коде и исправить эту ошибку
подскажите почему появляется такая ошибка error C2248: 'Base&lt;int,float&gt;::value1' : cannot access...

Найти причины возникновения ошибки "heap corruption detected after normal block #331" и исправить эту ошибку
добрый день,нужна ваша помощь. при выводе массива выдает такую ошибку &quot;heap corruption detected...

4
171 / 129 / 74
Регистрация: 04.12.2013
Сообщений: 552
02.11.2016, 18:15 2
Лучший ответ Сообщение было отмечено Old_DeD как решение

Решение

попробуйте убрать
C++
1
srand (time(NULL));
Добавлено через 1 минуту
Эта строка не иметт никакого смысла.
C++
1
int rn = rand()%62;
заммените на
C++
1
int rn;
1
nd2
3315 / 2729 / 1218
Регистрация: 29.01.2016
Сообщений: 9,205
02.11.2016, 18:20 3
Цитата Сообщение от Prorok2323 Посмотреть сообщение
попробуйте убрать
Из passgen() и добавить в main().
0
Любитель чаепитий
3266 / 1559 / 484
Регистрация: 24.08.2014
Сообщений: 5,397
Записей в блоге: 1
Завершенные тесты: 2
02.11.2016, 18:21 4
Лучший ответ Сообщение было отмечено Old_DeD как решение

Решение

Old_DeD, srand вынесите в начало функции main().
1
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 28
03.11.2016, 07:58  [ТС] 5
Спасибо очень помогли.Я даже не заметил, что я присвоил значение переменной rn перед циклом:
C++
1
2
3
4
5
6
7
8
9
10
string passgen(int len)
{
    string pass;
    srand (time(NULL)); //Убрать
    int rn = rand()%62; //Надо заменить на int rn;
    for(int i=0;i<len;i++)
    {
        rn = rand()%62;
        pass += letters[rn];
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2016, 07:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти причины возникновения ошибок в коде и исправить эти ошибки
Всем хай. Во-первых, vs не видит в мейне V и говорит, что она не инициализирована, но на идеоне оно...

Найти причины возникновения ошибок в коде и исправить эти ошибки
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include...

Найти причины возникновения ошибок в коде и исправить эти ошибки
Всем привет, я новичок. Решил попробовать создать простенький класс который выводит данные которые...

Найти причины возникновения ошибок в коде и исправить эти ошибки
помогите пожалуйста исправить ошибку вот код в с++ // ConsoleApplication9.cpp: определяет точку...

Найти причины возникновения ошибок в коде и исправить эти ошибки
Не пойму на что ругается и как исправить.

Найти причины возникновения ошибок в коде и исправить эти ошибки
#include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;iterator&gt; #include &lt;algorithm&gt; #include...


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

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

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