Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jazyk C [vyřešeno]  (Přečteno 4968 krát)

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Jazyk C [vyřešeno]
« kdy: 03 Března 2008, 18:21:16 »
Zdravas ....

V skole sme zacali pisat v Cecku tak  reku doma skusim v linuxe  napisal som to v txt ulozil v fester01.c pustil konzolu nasiel cestu kde mam fester01.c a napisal gcc fester01.c a napisalo mi taketo nieco :
Kód: [Vybrat]
fester-182@fester-182-desktop:~/fester-182$ gcc fester01.c
fester01.c: In function ‘main’:
fester01.c:7: error: expected expression before ‘%’ token
fester01.c:8: error: expected expression before ‘%’ token
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:14: error: expected ‘;’ before ‘{’ token
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program


vo widlach to ide v poriadku . je to iba primitivny priklad. prosim vas mohli by ste poradit co tam je vlastne zle ?

kod :
Kód: [Vybrat]
#include<stdio.h>


int main()
{
    int a,b;
    scanf("%d", %a);
    scanf("%d", %b);
    if(a > b)
    {
        printf("a je vacsie");
    }
    elseif(a < b)
    {
        printf("b je vacsie");
    }
    else
    {
        printf("a=b");
    }
    getch();
}
« Poslední změna: 03 Března 2008, 19:06:15 od Pavel Půlpán »
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

Pavel Půlpán

Re: Jazyk C
« Odpověď #1 kdy: 03 Března 2008, 18:36:56 »
Řádek 7 a 8: U proměnné má být znak &. ;)

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C
« Odpověď #2 kdy: 03 Března 2008, 18:46:29 »
vdaka opisal som zly kod. ale aj po pridani premennej  mi napise

Kód: [Vybrat]
fester-182@fester-182-desktop:~/fester-182$ gcc fester01.c
fester01.c: In function ‘main’:
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:9: error: stray ‘\302’ in program
fester01.c:9: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:13: error: stray ‘\302’ in program
fester01.c:13: error: stray ‘\240’ in program
fester01.c:14: error: expected ‘;’ before ‘{’ token
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program
fester01.c:17: error: stray ‘\302’ in program
fester01.c:17: error: stray ‘\240’ in program

Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

Pavel Půlpán

Re: Jazyk C
« Odpověď #3 kdy: 03 Března 2008, 18:58:16 »
Další chyba: Klíčové slovo elseif neexistuje. Musí být samostatně else if! Navíc funkce getch není standardní knihovní funkcí, tak jsem použil getchar().

Opravený a odzkoušený kód:
Kód: [Vybrat]
#include <stdio.h>

int main()
{
  int a, b;

  printf("\nZadej A = ");
  scanf("%d", &a);
  printf("Zadej B = ");
  scanf("%d", &b);

  if (a > b) {
    printf("A je vetsi...\n\n");
  }
  else if (a < b) {
    printf("B je vetsi...\n\n");
  }
  else {
    printf("A i B jsou si rovny...\n\n");
  }

  getchar();

  return 0;
}
« Poslední změna: 03 Března 2008, 19:01:54 od Pavel Půlpán »

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C
« Odpověď #4 kdy: 03 Března 2008, 19:00:59 »
velmi pekne ti dakujem . zase som o kustek mudrejsi.
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

Pavel Půlpán

Re: Jazyk C
« Odpověď #5 kdy: 03 Března 2008, 19:03:42 »
Ještě ti přiložím velmi pěkný seriál o C/C++ ... http://www.linuxsoft.cz/article.php?id_article=370

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C
« Odpověď #6 kdy: 03 Března 2008, 19:04:56 »
vdaka este raz.
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

shaman

  • Aktivní člen
  • *
  • Příspěvků: 128
Re: Jazyk C [vyřešeno]
« Odpověď #7 kdy: 03 Března 2008, 20:05:39 »
Tyhle chyby (stray \302 ...) ti to vypisuje, protože tam máš nějaké znaky, které gcc nemá rádo. Mě se to stává, pokud třeba omylem napíšu mezeru se stisknutým pravým altem. Pak to na příslušném řádku hlásí dvě chyby za každou takovou mezeru.
Kód: [Vybrat]
hello.c:11: error: stray ‘\302’ in program
hello.c:11: error: stray ‘\240’ in program

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C [vyřešeno]
« Odpověď #8 kdy: 03 Března 2008, 20:08:21 »
vdaka.
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C [vyřešeno]
« Odpověď #9 kdy: 03 Března 2008, 20:09:51 »
a aky je tam rozdiel ?
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

shaman

  • Aktivní člen
  • *
  • Příspěvků: 128
Re: Jazyk C [vyřešeno]
« Odpověď #10 kdy: 03 Března 2008, 20:14:45 »
Já ani vlastně nevím. Jednou to hlásí chyby a nezkompiluje se to, podruhé to proběhne bez problémů. Ale proč se to tak chová fakt netuším.

wam]Spider007

  • Host
Re: Jazyk C
« Odpověď #11 kdy: 03 Března 2008, 20:19:51 »
Řádek 7 a 8: U proměnné má být znak &. ;)

okrem toho na konci chybalo return, kedze funkcia main vracia hodnotu int.
je mozne v niektorych kompilatoroch zadavat main aj bez navratovej hodnoty, ale nezvykal by som si na to.

EDIT: a niesom si isty, ci pri pouziti getch() nie je potrebne pouzit inu kniznicu ako stdio.h

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C [vyřešeno]
« Odpověď #12 kdy: 03 Března 2008, 20:34:09 »
ja sa to este len ucim  mal som iba zapisane to co sme pisali v skole ...  ale dufam ze casom  budem vediet viac ak budem makat.
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

Pavel Půlpán

Re: Jazyk C [vyřešeno]
« Odpověď #13 kdy: 03 Března 2008, 20:55:17 »
Prototyp funkce getch() je definován v hlavičkovém souboru conio.h, který není součástí standardu jazyka C... nedávno jsem o tom přesvědčoval profesora na vejšce, kterej se divil, že na mým notebooku prostě conio.h není. ;D

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C [vyřešeno]
« Odpověď #14 kdy: 03 Března 2008, 21:00:36 »
teraz  budem aj ja  ak sa na vysku dostanem :D
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

jiri-j

  • Aktivní člen
  • *
  • Příspěvků: 489
  • skill: Lama
Re: Jazyk C [vyřešeno]
« Odpověď #15 kdy: 03 Března 2008, 21:01:17 »
jinak takový dotaz, k čemu je vlastně ta funkce  getch(), co přesně dělá?
Acer Aspire 3023WLMi, Sempron 3000+, ATI Mobility Radeon X700, 512MB RAM, Archlinux

Pavel Půlpán

Re: Jazyk C [vyřešeno]
« Odpověď #16 kdy: 03 Března 2008, 21:07:59 »
Fce getchar() oproti getch() čeká na vstupu na stisk klávesy Enter. Je to ještě podmíněno nastavením vstupu/výstupu, někdy se chovají obě funkce stejně.

fester-182

  • Aktivní člen
  • *
  • Příspěvků: 426
Re: Jazyk C [vyřešeno]
« Odpověď #17 kdy: 03 Března 2008, 21:09:39 »
takze getch zname lubovolna klavesa a getchar enter ?
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit. ;)

Pavel Půlpán

Re: Jazyk C [vyřešeno]
« Odpověď #18 kdy: 03 Března 2008, 21:13:01 »
Zjednodušeně řečeno: S použitím fce getchar() program čte znak a pozastaví se až do stisknutí klávesy Enter. Fce getch() oproti tomu čeká pouze na znak.

wam]Spider007

  • Host
Re: Jazyk C [vyřešeno]
« Odpověď #19 kdy: 03 Března 2008, 21:24:35 »
pouziva sa hlavne vo switchi (vetveni programu) ak mas trebars nejake menu, aby uzivatel nemusel zadat "a" a Enter, ale zada len "a" pre pokracovanie v danej vetve. je to moc sikovne.

Marvn

  • Stálý člen
  • **
  • Příspěvků: 627
  • Take it easy :)
Re: Jazyk C [vyřešeno]
« Odpověď #20 kdy: 04 Března 2008, 19:32:10 »
iostream  8)
Arch Linux x64 (KDE) | KISS  :-*
"Ignorance isn't stupidity, but choosing to remain ignorant is."

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: Jazyk C [vyřešeno]
« Odpověď #21 kdy: 04 Března 2008, 19:34:18 »
Citace
iostream
moje řeč ;) jsme holt zmlsaný no  :)
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

wam]Spider007

  • Host
Re: Jazyk C [vyřešeno]
« Odpověď #22 kdy: 04 Března 2008, 20:05:48 »
iostream  8)

no iostream nie je vzdy liek na secko :D

Pavel Půlpán

Re: Jazyk C [vyřešeno]
« Odpověď #23 kdy: 04 Března 2008, 20:46:45 »
V/V objekty z iostream maj taky svoje nevýhody. ;D

 

Provoz zaštiťuje spolek OpenAlt.