Avatar billede impetus Nybegynder
27. november 2002 - 21:29 Der er 3 kommentarer og
1 løsning

"ESCAPE SEQUENCE" Jeg har problemer med '\r' i en do-while-løkke!

Nedenfor har jeg lavet en mindre del af mit program (som virker:-), så det er nemmere at finde ud af.
Mit problem ligger i at når jeg har kørt do-while-løkken én gang sætter den enter som aktiv (tror jeg) og bliver ved med at køre i ring!

Mvh Jacob

//--------------------------------------------------
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

int main()
{   

    bool n;
    string password="hemmeligt";
    string clear20="--------------------";
    string ipass;
    int t;
    char temp;
    do
    {
        n = true;
        ipass = clear20;        //Sætter længden til 20
        cout << "\nIndtast password (Max 20 tegn)\n";    //indtast nyt password
                   
            t=0;
            while (temp != '\r')
            {
                temp = getch();        //bytter charakterene ud med en * og skriver værdierne ind i ipass
                if (temp != '\r' && t<20)
                {
                    ipass.at(t)=temp;
                    cout << '*';
                    t++;
                }
            }
            ipass.resize(t);

        if (ipass == password)        //Tjekker password med oprindeligt password
            n = false;        //går ud af programmet
        else
            cout << "indtast igen:";  //!!!!!Her skulle man gerne starte forefra!
    }
while(n);

return 0;
}
Avatar billede dittmer Nybegynder
27. november 2002 - 23:02 #1
Prøv at skrive dine værdier ud i det indtastede password. Tag længden og skriv den ud osse... Der er måske ét tegn for meget.
Hvad bliver sendt først: \n eller \r?
Avatar billede dittmer Nybegynder
27. november 2002 - 23:03 #2
F'resten: Stopper den stadig ved 20 tegn?
Avatar billede impetus Nybegynder
27. november 2002 - 23:49 #3
Har fundet løsningen

temp = ' '

altså man sætter temp til at være noget andet end '\r'
Avatar billede dittmer Nybegynder
28. november 2002 - 23:33 #4
Gælder det osse for passwords på 20 tegn?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester