C skript: heslo

Sekcia: Programovanie 03.07.2011 | 01:09
Avatar Rado Debian | Ubuntu | DSL  Používateľ
Ahojte, neviem si rady... potreboval by som skript ktorý by si odo mňa vypýtal heslo (nie uživateľa ale napr. že by bolo uložené v tom skripte) a na koniec podmienku že keď heslo je správne no tak vypíše "Access Granted" a keď heslo je zle tak vypíše "Bad password" (toto by som si chcel dorobiť sám). Kto má chuť a náladu? Please.
I LOVE DEBIAN.
    • Re: C skript: heslo 03.07.2011 | 02:02
      Avatar Dare_devil Debian, OpenSuse  Používateľ
      printf, scanf a jednoducha podmienka if, co viac ? nic, otazka 10 minut aj s pozeranim netu
      There is no flag large enough to cover the shame of killing innocent people
      • Re: C skript: heslo 03.07.2011 | 02:04
        Avatar Rado Debian | Ubuntu | DSL  Používateľ
        hh... xD tebe sa to ľahko povie.... no ale skúsim poexperimentovať... snáď mi nevybuchne komp...
        I LOVE DEBIAN.
        • Re: C skript: heslo 03.07.2011 | 02:05
          Avatar Rado Debian | Ubuntu | DSL  Používateľ
          Ale ako zadefinovať heslo?
          I LOVE DEBIAN.
          • Re: C skript: heslo 03.07.2011 | 02:11
            Avatar Dare_devil Debian, OpenSuse  Používateľ
            do pola ?
            There is no flag large enough to cover the shame of killing innocent people
            • Re: C skript: heslo 03.07.2011 | 02:13
              Avatar Rado Debian | Ubuntu | DSL  Používateľ
              Huh dobra otazka... netusim....
              I LOVE DEBIAN.
              • Re: C skript: heslo 03.07.2011 | 02:34
                Avatar Rado Debian | Ubuntu | DSL  Používateľ
                Do pola... ak mi to pomoze tak hej :D
                I LOVE DEBIAN.
    • Re: C skript: heslo 03.07.2011 | 07:04
      Avatar Samuel BWPOW Kupka CentOS, Mandriva  Používateľ
      Ze si to ty, tak tu mas:
      #include <stdio.h>
      #include <string.h>
      
      int main(void)
      {
        const char *heslo="totoJEheslo";
        char vstup[512];
        printf("Zadaj heslo: ");
        if(fgets(vstup,sizeof(vstup)-1,stdin)==NULL) vstup[0]='\0';
        if(strlen(vstup)>0&&vstup[strlen(vstup)-1]=='\n') vstup[strlen(vstup)-1]='\0';
        printf("%s\n",strcmp(heslo,vstup)?"Bad password":"Access Granted");
        return 0;
      }
      
      Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
      • Re: C skript: heslo 03.07.2011 | 14:56
        Avatar Rado Debian | Ubuntu | DSL  Používateľ
        No ďakujem pekne :D Išlo mi vlastne o to že keď zapnem program začne svietiť LEDka zavesená na LPT (červená) a ak zadám správne heslo tak sa rozsvieti zelená. Dik.
        I LOVE DEBIAN.
        • Re: C skript: heslo 08.08.2011 | 01:26
          Rado   Návštevník
          Malá otázka, ako udržím ten program pri živote? Pretože ak zadám správne heslo tak mi len vypíše Access Granted ale hodí ma to späť do shellu... ja potrebujem aby čakal kým uživateľ nestlačí napr. klávesu Q. Dalo by sa to? :D
          • Re: C skript: heslo 08.08.2011 | 14:36
            Avatar Fridolín Pokorný Fedora 21  Používateľ
            while(getchar() != 'Q')
              continue;
          • Re: C skript: heslo 08.08.2011 | 19:42
            homo   Návštevník
            printf("With Enter quit.");
            getchar();
      • Re: C skript: heslo 09.08.2011 | 14:34
        Avatar Miroslav Bendík Gentoo  Administrátor
        K dokonalosti chýba už len nastavenie atribútov terminálu, aby znaky hesla neboli vypisované rovnako ako to robí su, sudo ... ;) Žiaľ nespomeniem si teraz ako sa to robí.
        • Re: C skript: heslo 09.08.2011 | 15:03
          Rado   Návštevník
          vďaka všetkám
        • Re: C skript: heslo 09.08.2011 | 16:12
          Avatar Fridolín Pokorný Fedora 21  Používateľ
          Toto nie je v norme C nijak definovane. V podstate ide o platformovo zavislu cast ako aj zavisle na danom terminali. Vypnutie echa je mozne docielit vyuzitim funkcii z termios.h.