Program pro porovnávání loginu a hesla – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program pro porovnávání loginu a hesla – C / C++ – Fórum – Programujte.comProgram pro porovnávání loginu a hesla – C / C++ – Fórum – Programujte.com

 

Frkymen
~ Anonymní uživatel
4 příspěvky
9. 5. 2015   #1
-
0
-

Zdravim, dostal se mi pod ruku program, který porovnává jména a hesla. Když do konzole zadáme jméno a heslo, porovná se s jménem a heslem v textovém dokumentu, který jsem si vytvořil. Je to tam zadané v tomto formátu: Petr; auto123  a takhle jsou vypsané pod sebou. 

Program je zde: 

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

bool authorize(const char* login, const char* password) {
  FILE* soubor = fopen("hesla.TXT", "r");
  char jmeno[10], heslo[33];
  int nenikonec;
  bool result = false;
  
  while(true) {
      nenikonec = fscanf(soubor, "%9[^\n;]; %32s\n", jmeno, heslo);
      if(nenikonec!=2) break;
      if(strcmp(jmeno,login) ==0 && strcmp(heslo,password) ==0) {
      result = true;
      break;
      }
  }
  fclose(soubor);
  return result;
}

void dialogue(const char* login, const char* password) {
  printf("Zadej login: ");
  scanf("%31s", login);
  printf("Zadej password: ");
  scanf("%32s", password);
}

int main() {

  char login[32], password[33];
  dialogue(login,password);
  bool authorized = authorize(login,password);
  
  if(authorized){
  puts("Autorizovana sekce"); }
  else {
  puts("Pristup odmitnut"); }
  getchar();
  getchar();
  }

Prošel jsem si celý program, ale není mi jasné, co dělá tento úsek: if(nenikonec!=2) break;  , hlavně tedy proč je tam !=2  . 

Díky za radu

Nahlásit jako SPAM
IP: 178.255.168.–
KIIV
~ Moderátor
+43
God of flame
9. 5. 2015   #2
-
0
-

Otazka za 10 bludistaku: Co vraci fscanf jako navratovou hodnotu?

Jakmile na toto najdes odpoved, budes vedet proc to tam je

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Frkymen
~ Anonymní uživatel
4 příspěvky
9. 5. 2015   #3
-
0
-

Return Value

On success, the function returns the number of items of the argument list successfully filled. This count can match the expected number of items or be less (even zero) due to a matching failure, a reading error, or the reach of the end-of-file.

Takže počet položek, které mám v tom textovém dokumentu, že? A počítá se to i s nulou podle toho co píšou, ne? Mám tam 3 položky.

Nahlásit jako SPAM
IP: 178.255.168.–
Kenvelo+2
Super člen
9. 5. 2015   #4
-
0
-

#3 Frkymen
to znamená ze když nenajde soubor kde jsou hesla tak ukončí cyklus.

Nahlásit jako SPAM
IP: 85.71.238.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Frkymen
~ Anonymní uživatel
4 příspěvky
9. 5. 2015   #5
-
0
-

#4 Kenvelo

Takže ta dvojka neznamená, že tam sou 3 položky? (0,1,2) ?

Nahlásit jako SPAM
IP: 178.255.168.–
KIIV
~ Moderátor
+43
God of flame
9. 5. 2015   #6
-
0
-

0 znamena, ze se nepovedlo nacist zadnou polozku

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Frkymen
~ Anonymní uživatel
4 příspěvky
9. 5. 2015   #7
-
0
-

#6 KIIV

Já to pořád nechápu :( Proč tam je teda 2 ?

Nahlásit jako SPAM
IP: 178.255.168.–
KIIV
~ Moderátor
+43
God of flame
9. 5. 2015   #8
-
0
-

   

fscanf(soubor, "%9[^\n;]; %32s\n", jmeno, heslo);
//                                 ^ 1    ^ 2

// Kdyz se povedlo nacist jak jmeno tak heslo,
// tak pocet nactenych promennych je 2,
// proto se kontroluje, jestli se nacetly 2 promenne.
Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 13 hostů

Podobná vlákna

Vytvoreni hesla pro root — založil BigBear

Prelomenie loginu — založil Martin

Program v C pro PIC18F452 — založil hynman

Program pro AVR — založil Ravien

Program pro 8051 — založil Wexter

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ý