Seite 1 von 1
Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 5:14 pm
von ProgBeginner
Hallo
Im
Kapitel "Dateien" des C-Tuts scheint sich im Beispielcode zur Binärdateierstellung ein Fehler eingeschlichen zu haben - oder habe ich eventuell die falsche Compilerversion?
Wenn ich diese binwrite.c kompilieren möchte, meldet mir der Compiler :
binwrite.c: In function ‘main’:
binwrite.c:82:3: error: expected declaration or statement at end of input
Meine GCC-Version :
gcc (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Den Quellcode vom Tut habe ich 1:1 so übernommen, ich habe eigenhändig keine Änderungen vorgenommen.
Re: Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 6:54 pm
von cloidnerux
Im Kapitel "Dateien" des C-Tuts scheint sich im Beispielcode zur Binärdateierstellung ein Fehler eingeschlichen zu haben - oder habe ich eventuell die falsche Compilerversion?
Auf welches Beispiel beziehst du dich?
Die beiden letzteren aus dem Artikel compilieren(Win7 x64, gcc 4.8.1) bei mir Problemlos.
Hast du vlt beim kopieren irgendeinen Zeilenumbruch erwischt?
Was steht bei dir in Zeile 82?
Re: Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 6:56 pm
von oenone
Da musst du irgendwie etwas unvollständig kopiert oder zuviel kopiert haben.
Welches der vielen Listings hast du genommen? Vom Dateinamen scheint es binwrite zu sein. Bei mir funktioniert es problemlos.
Re: Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 9:34 pm
von ProgBeginner
Meine komplette main-Funktion aus dem binwrite.c schaut folgendermaßen aus:
Code: Alles auswählen
int main( void )
{
FILE * file = fopen( "datei.bin", "w+b" );
if( file )
{
struct Header header;
/* zu schreibende Daten vorbereiten */
struct Segment segment1 = { 0, 0, 10, 0 };
struct Segment segments[] = { { 10, 0, 10, 10 },
{ 10, 10, 0, 0 } };
struct Triangle triangle = { 20, 0, 30, 0, 30, 10 };
/* Header vorbereiten */
strcpy( header.id, "proggen.org binfile" /* 17 Bytes + 1 Nullbyte */ );
header.objects = 4;
/* Header schreiben */
fwrite( &header, sizeof( struct Header ), 1, file );
/* Daten schreiben */
writeSegment ( file, &segment1, 1 ); /* einzelnes Segment */
writeTriangle( file, &triangle, 1 ); /* einzelnes Dreieck */
writeSegment ( file, segments, 2 ); /* Datenarray schreiben */
/* Datei schließen */
fclose( file );
}
return EXIT_SUCCESS;
Zeile 82 ( laut gEdit ) :
Mit dem kompletten Quellcode meiner binwrite.c
hab ich mal nopaste.info behelligt
// EDIT.C sagt:
Ich glaube, ich hab den Fehler gefunden. Nach dem return EXIT_SUCCESS fehlte noch eine geschweifte ... das ist es
sry - ich seh manchmal auch den Wald vor Bäumen nicht.
Re: Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 9:44 pm
von cloidnerux
Du hast zwar den Quellcode kopiert, aber nicht vollständig
Da fehlt noch ein "}" nach
Re: Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 9:59 pm
von ProgBeginner
Da hat sich deine Antwort damit überschnitten, dass ich den selbigen Fehler auch schon gefunden habe
Ich seh manchmal den Wald vor Bäumen net - sorry

Re: Fehler in C-Tutorial Quellcode?
Verfasst: Do Okt 30, 2014 10:07 pm
von cloidnerux
Da hat sich deine Antwort damit überschnitten, dass ich den selbigen Fehler auch schon gefunden habe
Es ist immer besser, selber die Fehler zu finden. Daraus lernt man mehr.