C subory

Sekcia: Programovanie 08.07.2008 | 16:44
Avatar rc-fox Ubuntu 8.04,Debian Lenny  Používateľ
#include <stdio.h>
int main()
{
char a;
int b;
FILE *f;
f = fopen("123.txt","r");
fscanf(f, "%d" , &a);

printf("zadaj heslo:");scanf("%d", &b);
if (a == b)
printf("spravne heslo");
fclose(f);
}


toto je moj zdrojak..a ide mi v nom o tom ze nacitam zo suboru heslo a mam ho porvnat ale neviem ako na to ja to mam takto.. zatial som to robil ze ancita len jedne znak a ten porovna ale nejde to..neviete nekdo help prosim vas??
    • Re: C subory 08.07.2008 | 16:52
      Avatar nardew debian  Používateľ
      strcmp

      a okrem toho vyskusal som dat do googla "comparings strings in c" a cuduj sa svete co to vyhodilo..
      • Re: C subory 08.07.2008 | 16:58
        Avatar rc-fox Ubuntu 8.04,Debian Lenny  Používateľ
        :D: a inac strcmp na porvanie nejde skusal som aj to
        • Re: C subory 08.07.2008 | 18:27
          Avatar nardew debian  Používateľ
          to si fakt az taky lenivy a na nete si neprecitas ako sa dana funkcia pouziva (umiestnenie v hlavickovom subore, navratove typy apod.)???
          • Re: C subory 08.07.2008 | 18:28
            Avatar nardew debian  Používateľ
            *nie navratove typy, ale navratove hodnoty
        • Re: C subory 08.07.2008 | 18:58
          Avatar Dušan Ďurech Debian Lenny 5.0  Používateľ
          Budem hadat, skusal si tie dve premenne ( char a; int b; ) porovnat cez strcmp ?

          ( bodaj by ti to slo, ked strcmp ma parametre pointer na znak a vracia 0 ak sa rovnaju )

          int strcmp(char *s1, char *s2)
    • Re: C subory 08.07.2008 | 17:00
      oO   Návštevník
      problemom tvojho programu je to, ze nepouzivas string (ukazatel na char), ale char a int a nakoniec tieto dva odlisne typy porovnavas... a na porovnanie stringov pouzijes bud funkciu strcmp() (predtym treba #include <string.h>) alebo si uvedomis, ze string je pole znakov a dva stringy teda porovnas ako dve polia (hint. cyklus ;)).
    • Re: C subory 08.07.2008 | 18:14
      Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
      #include <stdio.h>
      #include <string.h>
      
      int main()
      {
        char a[100],b[100];
        FILE *f;
        f = fopen("123.txt","r");
        fscanf(f, "%s" , a);
        fclose(f);
      
        printf("zadaj heslo:");scanf("%s", b);
        if (!strcmp(a,b))  printf("spravne heslo");
      }
      
      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 subory 08.07.2008 | 20:49
        Avatar Fridolín Pokorný Fedora 21  Používateľ
        Este dodam, ze pre fajnsmekrov by sa tam hodilo aj else. ;-) Cize:
        #include <stdio.h>
        #include <string.h>

        int main()
        {
        char a[100],b[100];
        FILE *f;
        f = fopen("123.txt","r");
        fscanf(f, "%s" , a);
        fclose(f);

        printf("zadaj heslo:\n");scanf("%s", b);
        if (!strcmp(a,b)) printf("Spravne heslo!\n");
        else printf("Nespravne heslo!\n");
        }

        Je to ale vec doraznosti...
        • Re: C subory 12.07.2008 | 10:29
          Avatar rc-fox Ubuntu 8.04,Debian Lenny  Používateľ
          diky