PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wo sind die fehler ?



mips
18-10-2002, 16:46
hab das prog aus einem buch (=ein einführungsbsp) abgeschrieben und es wimmelt von fehlern,
:mad: , wär sehr dankbar wenn mir wer sagen kann wo die liegen..

Pingu
18-10-2002, 17:01
Original geschrieben von mips
hab das prog aus einem buch (=ein einführungsbsp) abgeschrieben und es wimmelt von fehlern,
:mad: , wär sehr dankbar wenn mir wer sagen kann wo die liegen.. Naja, das sieht mir aber zum größten Teil nach Tipfehlern aus, z.B.


#define SREQ(a,b) (strcmp( (a), (b) )=0)
??--^

richtig muß das lauten

#define SREQ(a,b) (strcmp( (a), (b) )==0)Das gleiche hier

if((fp=fopen(filename,"r"))=NULL)richtig:
if((fp=fopen(filename,"r"))==NULL)
Dann hier
if(trcmp (filename, "-")==0)muß wohl eher lauten
if(strcmp (filename, "-")==0)
Dann wieso kommt erst
if((fp=fopen(filename,"r"))=NULL)
{
(void) fprintf (stder, "%s:cannot open %s: %s\n", cmnd, filename, strerror(errno) );
exit(EXIT_FAILURE);
}

while( fgets (line, sizeif (line),fp) !=NULL)
{
if(printf("%6d %s", lineo, line) <0)
{
(void) fprintf(stderr, "%s: standard output error: %s\n",cmnd, strerror (errno) );
exit(EXIT_FAILURE);
}

lineo ++;
}
und dann
if(trcmp (filename, "-")==0)
{
fp=stdin;
}

So rum macht das wohl auch keinen Sinn. Das muß wohl andersherum rein.

Hast Du das wirklich genauso abgeschrieben? Was ist das für ein Buch? Wohl eines von Franzis oder Markt&Technik? Dann wirf es weg und kauf Dir 'n ordentliches.

-= Pingu =-

PS: Da hab ich noch wesentlich mehr Fehler gesehen. Aber ich wollte das Programm jetzt nicht komplett neu schreiben.

nobody0
18-10-2002, 17:04
Da sind nunmal Fehler drinn.
Beispielsweise der erste:

if((fp=fopen(filename,"r"))=NULL)

Hier ist offensichtlich ein Vergleich und keine Zuweisung gemeint, also

if((fp=fopen(filename,"r"))==NULL)

Ansonsten wäre die Zuweisung mit dem fopen sinnlos.

So geht es weiter: statt stder heisst es korrekt stderr; alles kleine Unterschiede, die aber Fehler sind.

Am besten fängst Du mit einem hello-World-Programm an.

mips
18-10-2002, 17:50
ich hab leider nicht die zeit mich da langsam einzuarbeiten, weil mein 1.bsp schon s.... schwer ist.. :((
jedennfalls scheint es das in dem prog vieles nicht deklariert ist, zb line , filename
und dann schreiben die in dem buch hin .. lauffähiges program:eek: :rolleyes
hab alle fehler ausgebessert , wäre über weitere dankabr ;)

nobody0
18-10-2002, 18:50
Das Programm ist ganz gut als schlechtes Beispiel, d. h. man lernt die Bedeutung der Fehlermeldungen kennen und auch die Fehlerbeseitigung ;)