Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: DOS und Win32-Konsole (nur Lesen) ::  getch - Funktion.     Zeige alle Beiträge auf einer Seite Thema geschlossen
Autor Nachricht
neuling?!!
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.06.2012
Beiträge: 2
Beitrag neuling?!! Mitglied 11:12:11 07.06.2012   Titel:   getch - Funktion.            Zitieren

Hallo,
ich bin absoluter Neuling!
Probiere es gerade ein Programm (mit einer Passwortabfrage) zu schreiben.
Funktioniert zwar soweit, aber ich möchte das man nur eine Taste drücken muss, ohne Enter zu drücken (mit der Funktion getch)

Was mache ich falsch?

#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

int main()
{

string password = "h";
string input;

cout << "Passwort:" << endl;
getch();
cin >>input;

if(!password.compare(input))
{
cout << "Zugriff gewaehrt.\n";
}
else
{
cout << "Zugriff verweigert.\n";
getch();
}
system("Pause");

return 0;
}

Vielen Dank für die Hilfe im v******.
C++ Forumbot
Forumbot

Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 17164
Beitrag C++ Forumbot Forumbot 11:14:23 07.06.2012   Titel:              Zitieren

Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum DOS und Win32-Konsole verschoben.

Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?


Dieses Posting wurde automatisch erzeugt.

_________________
Besuchen Sie unsere Bücherecke.
http://www.c-plusplus.de/bucher.php
Mit jeder Bestellung unterstützen Sie das Forum.
Unregistrierter





Beitrag Unregistrierter 11:26:09 07.06.2012   Titel:              Zitieren

Du musst das, was du mit getch einließt, auch irgendwo abspeichern:

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
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
 
int main()
{
    string password = "h";
    string input;
 
    cout << "Passwort:" << endl;
    for(char c; (c=getch())!='\n' && c!='\r'; input+=c);
 
 
    if(!password.compare(input))
    {
        cout << "Zugriff gewaehrt.\n";
    }
    else
    {
        cout << "Zugriff verweigert.\n";
    }
 
    cin.get();
    return 0;
}
neuling?!!
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.06.2012
Beiträge: 2
Beitrag neuling?!! Mitglied 11:38:03 07.06.2012   Titel:              Zitieren

Vielen Dank, das klappt !

Ist die getch Funktion nicht auch dafür da das kein Enter gedrückt werden muss?

Und geht die Funktion nicht einfacher?

for(char c; (c=getch())!='\n' && c!='\r'; input+=c);

Ich verstehe das garnicht :(


Zuletzt bearbeitet von neuling?!! am 11:38:53 07.06.2012, insgesamt 1-mal bearbeitet
Unregistrierter





Beitrag Unregistrierter 11:53:34 07.06.2012   Titel:              Zitieren

neuling?!! schrieb:
Ist die getch Funktion nicht auch dafür da das kein Enter gedrückt werden muss?
Bei getch musst du kein Enter drücken. Aber irgendwie musst du doch sagen, wann dein Passwort zu Ende ist. Und eine Passworteingabe bestätigst du doch normal mit Enter. Im Endeffekt kannst du doch einfach einen std::string einlesen.

neuling?!! schrieb:
Und geht die Funktion nicht einfacher?
Eine Funktion? Ich sehe hier keine Funktion. Was ich sehe, ist eine for-Schleife. Der for-Schleifenkopf besteht aus 3 Anweisungen:
1. Definition einer Variablen.
2. Abbruchbedingung
3. Irgendwas, was nach jedem Schleifendurchgang passieren soll.

Was verstehst du da jetzt nicht?
c++.de :: DOS und Win32-Konsole (nur Lesen) ::  getch - Funktion.   Thema geschlossen

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.