maly problem z kodem

tumpaj

Użytkownik
Dołączył
Wrzesień 10, 2005
Posty
2
jak w temacie odrazu zaznaczam ze jestem poczatkujacy
KOD:
Kod:
#include <stdio.h>



int main ();

   { 

   char a[10], b[10]

   do {

   a =haslo;

   printf("Podaj Haslo");

   scanf("%h", %b);

   if (a=b) printf("Witaj");

   else printf("zle haslo"); } 

   while (a != b);

   return 0;

}

a przy kompilacji wyskakuja takie bledy:
haslo.cpp:4: error: expected unqualified-id before '{' token
haslo.cpp:4: error: expected ',' or ';' before '{' token
bede wdzieczny za pomoc
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
Kod:
#include <stdio.h> 

#include<conio.h> // czyszczenie ekranu



int main (); 

{ 

   char a[10], b[10]; // srednik

   a = "haslo"; // "" bo jest to string



   do 

  { 

     clrscr(); // czysc ekran nie wiem czy to dziala

     printf("Podaj Haslo: "); 

     scanf("%s", b); // %s bo string samo b bo tablica



     if(a == b) // == zamiast =

       printf("Witajnn"); 

     else 

       printf("zle haslonn");  // n przejscie do nowej linii

  } 

  while (a != b); 

  

  return 0; 

}

Nie sprawdzalem tylko na oko poprawilem... Widze ze plik ma rozszerzenie cpp a nie c. Skoro piszesz ladnie w C to stosuj koncowke C. A jesli uczysz sie C++ to lepiej zacznij czytac o cin i cout - bedzie Ci latwiej
smile.gif
 

M1ch00

Użytkownik
Dołączył
Sierpień 22, 2006
Posty
609
Pozwolę sobie sprostować wypowiedź poprzednika - porównania w stylu (a ==
<
nie działają dla ciągów znakowych char, gdyż porównują wskaźniki a nie ciągi znaków;
Poprawny kod w C:
Kod:
#include <stdio.h>

#include <string.h>

int main()

{

    char a[]="haslo",b[10];//a będzie miało auto długość

    do

    {

        printf("Podaj Haslo:");

        scanf("%s",b);

        if(strcmp(a,b)==0)//porównanie, 0 oznacza równe

            printf("Witajn");

        else

            printf("Zle haslon");

    }while(strcmp(a,b)!=0);

    return 0;

}
I w C++:
Kod:
#include <iostream>

#include <string>

using namespace std;

int main()

{

    string a="haslo",b;//używamy klasy string

    do

    {

        cout <<"Podaj Haslo:";

        cin >>b;

        if(a==b)

            cout <<"Witaj!"<<endl;//ważne <<endl;

        else

            cout <<"Zle haslo"<<endl;

        

    }while(a!=b);

    return 0;

}
Uwaga - niepodanie <<endl; spowoduje wypisanie danej lini dopiero przy następnej operacji odczytu, więc "błędne hasło" się wypisze, ale "Witaj", dopiero przy zakończeniu programu.
Uwaga 2 - jeżeli przeszkadza, żeokienko od razu znika to przed return 0; dodaj system("PAUSE");
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
Bardzo sluszna uwaga M1ch00! Jeszcze zostalo mi przyzwyczajenie ze string'ow
<
 
Do góry Bottom