Fórum Ubuntu CZ/SK
Ostatní => Otevřená diskuze kolem Linuxu a OSS => Téma založeno: fester-182 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 : 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 : #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();
}
-
Řádek 7 a 8: U proměnné má být znak &. ;)
-
vdaka opisal som zly kod. ale aj po pridani premennej mi napise
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
-
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:
#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;
}
-
velmi pekne ti dakujem . zase som o kustek mudrejsi.
-
Ještě ti přiložím velmi pěkný seriál o C/C++ ... http://www.linuxsoft.cz/article.php?id_article=370
-
vdaka este raz.
-
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.
hello.c:11: error: stray ‘\302’ in program
hello.c:11: error: stray ‘\240’ in program
-
vdaka.
-
a aky je tam rozdiel ?
-
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.
-
Řá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
-
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.
-
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
-
teraz budem aj ja ak sa na vysku dostanem :D
-
jinak takový dotaz, k čemu je vlastně ta funkce getch(), co přesně dělá?
-
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ě.
-
takze getch zname lubovolna klavesa a getchar enter ?
-
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.
-
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.
-
iostream 8)
-
iostream
moje řeč ;) jsme holt zmlsaný no :)
-
iostream 8)
no iostream nie je vzdy liek na secko :D
-
V/V objekty z iostream maj taky svoje nevýhody. ;D