Skryté heslo – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Skryté heslo – C / C++ – Fórum – Programujte.comSkryté heslo – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
1. 11. 2013   #1
-
0
-

Ahojte :^) Potreboval by som pomôcť nájsť chybu v zdrojovom kóde - po zadaní funkčného hesla ho neuzná.

#include <iostream>
#include <string>
#include <conio.h>
#include <chrono>
#include <thread>
using namespace std;

//Premenné k funkcii "prihlasenie"
string prihlasenieS; 
char ch;
const char ENTER = 13;

void prihlasenie(void);

int main(void)
{
	prihlasenie();
	cout << "Vitajte v ovladacom paneli.\n";
}

void prihlasenie(void)
{
	cout << "Zadajte pristupove meno:";
	while(1)
	{
		cin >> prihlasenieS;
		if (prihlasenieS == "cplusplus")
			break;
		else
			cout << "Neplatne meno. Opakujte vstup:";
	}
	cout << "Zadajte pristupove heslo:";
	while(1)
	{
		while((ch = _getch()) != ENTER)
		{
			prihlasenieS += ch;
			cout << '*';
		}
		if (prihlasenieS == "algorithm")
			break;
		else
			cout << "Neplatne heslo. Opakujte vstup:";
	}
	cout << "Identifikacia uspesna.";
	this_thread::sleep_for( std::chrono::seconds( 2 ) );
	system("cls");
}

Ďakujem :)

Nahlásit jako SPAM
IP: 5.178.48.–
KIIV
~ Moderátor
+43
God of flame
1. 11. 2013   #2
-
0
-

nezustava v tom prihlaseniS nahodou to, co si nacetl jako pristupove jmeno?

dokonce ani pri neuspechu to nevynulujes a pridavas to k tomu, takze nemas sanci

a na woknouzech mozna budes mit problem pri zadani spatneho hesla, ze ti tam muze zustat ascii 10 (LF) a na linuxu ze se posila jen (LF) zadny CR (13)

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Řešení
1. 11. 2013   #3
-
0
-
Vyřešeno Nejlepší odpověď

#2 KIIV
V preklade de'la nájdi si sám - string.clear() : D

#include <iostream>
#include <string>
#include <conio.h>
#include <chrono>
#include <thread>
using namespace std;

//Premenné k funkcii "prihlasenie"
string prihlasenieS; 
char ch;
const char ENTER = 13;

void prihlasenie(void);

int main(void)
{
	prihlasenie();
	cout << "Vitajte v ovladacom paneli.\n";
}

void prihlasenie(void)
{
	cout << "Zadajte pristupove meno:";
	while(1)
	{
		cin >> prihlasenieS;
		if (prihlasenieS == "cpluscplus")
			break;
		else
			cout << "Neplatne meno. Opakujte vstup:";
	}
	cout << "Zadajte pristupove heslo:";
	while(1)
	{
		prihlasenieS.clear();
		while((ch = _getch()) != ENTER)
		{
			prihlasenieS += ch;
			cout << '*';
		}
		if (prihlasenieS == "algorithm")
			break;
		else
			cout << "\nNeplatne heslo. Opakujte vstup:";
	}
	cout << "\nIdentifikacia uspesna.";
	this_thread::sleep_for( std::chrono::seconds( 2 ) );
	system("cls");
}
Nahlásit jako SPAM
IP: 5.178.48.–
KIIV
~ Moderátor
+43
God of flame
1. 11. 2013   #4
-
0
-

A zkusil si, co to provede, kdyz zadas poprve heslo spatne? Projde to, kdyz pak zadas spravne heslo?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Robo
~ Anonymní uživatel
82 příspěvků
1. 11. 2013   #5
-
0
-

#3 ArcaneBeam13

V buffery ti stále zostáva znak enter. Stačí po každom načítaní pridať 

while(cin.get() != '\n')
	continue;

Tu je kód ale bez vlákien

#include <iostream>
#include <string>

using namespace std;

const int ENTER = 13;

void prihlasenie();

int main()
{
	
	char c;
	prihlasenie();

	system("PAUSE");
}

void prihlasenie(){
	string prihlasenieS;

	cout << "Zadajte pristupove meno: ";

	while(1){
		cin >> prihlasenieS;

		if(prihlasenieS == "Cplusplus")
			break;
		else
			cout << "Neplatne meno. Opakujte vstup: ";
		while(cin.get() != '\n')
			continue;
	}

	while(cin.get() != '\n')
			continue;

	cout << "Zadajte pristupove heslo: ";

	while(1){
		cin >> prihlasenieS;

		if(prihlasenieS == "algorithm")
			break;
		else
			cout << "Neplatne heslo. Opakujte vstup: ";
		while(cin.get() != '\n')
			continue;
	}
}

Nahlásit jako SPAM
IP: 178.253.157.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

Podobná vlákna

Skryte soubory — založil Ondřej Šplíchal

Win7 - skryté účty — založil z_moravec

Heslo — založil

Heslo — založil Aliande

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý