Forum: Teckengenerering - fel på kod

Forum huvudsida -> Programmering -> Teckengenerering - fel på kod

Sidor: 1

Till botten

Vitdom 17:59 - 1:a Augusti 2008 | Post #1
Medlem
Inlägg: 71


Skicka PM
Jag har ett problem, när jag kör min kod som ser ut såhär:

srand((unsigned)time(NULL));

int passlength;
string password = "";

for(int i = 0; i < passlength; i++)
    password[i] = rand() % ('~' - ' ') + ' ';
password[passlength] = '';

cout << "\nPassword: " << password << endl;


så blir det såhär:

Length of password(min 2, max 32): 5

Password:

Text:
111 555 666

Your encrypted text:
fffUjjjUkkk


Felet är att den inte verkar generera tecken, för den skriver inte något på "Password: " och krypterar inte som den ska. Man kan se att alla tecken blir krypterade till likadana tecken, fastän de inte ska det, så det verkar typ bara vara ETT tecken i password.

Jag använder Windows XP Home Edition Service Pack 3 med kompilatorn MinGW GCC 3.4.5.

-------------------------



Senast redigerad 18:40 - 1:a Augusti 2008


tobbez 19:35 - 1:a Augusti 2008 | Post #2
Medlem
Inlägg: 364


Skicka PM
Du ger aldrig passlength något värde, så då initieras den till 0, vilket medför att du genererar ett lösenord på 0 bokstäver.

Att läsa igenom sin kod brukar hjälpa Smiley




Vitdom 20:30 - 1:a Augusti 2008 | Post #3
Medlem
Inlägg: 71


Skicka PM
Jag frågar användaren om ett värde innan, jag får nog ge hela koden(orkar inte skriva alla beroendenSmiley): http://pastebin.com/m7676c7dc

Koden det är fel på, finns på rad 247.


JAG HAT HITTAT FELET NU! Det var att jag måste göra variablen större så att den kan hålla alla tecken med funktionen string.resize(int chars);.

-------------------------



Senast redigerad 16:12 - 2:a Augusti 2008


Sidor: 1

Forum huvudsida -> Programmering -> Teckengenerering - fel på kod
Atom feed

Du får inte posta i den här tråden | Till toppen