Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » error C4430

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.11.2012, 17:24 Uhr
chicko



hallo ich habe gestern folgenden code geschrieben

#include <stdio.h>

#define LINE_LENGTH 80

main()
{
FILE* fp;
char line[LINE_LENGTH];
int count=0;

fp=fopen("test.txt","r");

while ( fgets(line, LINE_LENGTH, fp) != NULL) count++;

printf("File contains %d lines.\n", count);

fclose(fp);
}


Das Programm soll die Zeilen in einer Datei zählen


aber ich bekomme immer:

error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.


was dieser Fehler bedeutet weiß ich auch aber ich finde ums "Verrecken" diesen Fehler nicht, wahrscheinlich sehe ich einfach den Wald vor lauter Bäumen nicht mehr^^


Wäre cool wenn mal kurz jemand drüber schauen könnte
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.11.2012, 19:33 Uhr
TOSHMAX



main ohne Return-Typ funktionierte in früheren Versionen von C. Nicht in C++. Also ganz einfach:

C++:
int main() { ... }
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.11.2012, 23:54 Uhr
Hans
Library Walker
(Operator)


Und vor der schliessenden Klammer von main das return 0; nicht vergessen. (Sonst gibt's 'ne Warnung à la "Warning! W107: Missing return value for function 'main'".) Also

C++:
int main()
{
  ...

  return 0;
}



Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.11.2012, 09:49 Uhr
~f.-th.
Gast


Nur ältere, nicht C++ standard-konforme Compiler beschweren sich nach fehlendem return nach int main()


C++:
int main()
{
  ...

  return 0;    // laut laut aktuellem C++Standard entfallen - der Compiler sollte das dann automatisch setzen
}



Siehe auch Beispiele im C++ Standard. Denke das das so übernommen wurde in einem der letzten Draft ist das so gezeigt.

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.11.2012, 09:50 Uhr
~f.-th.
Gast


// kann laut aktuellem
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.11.2012, 10:17 Uhr
~f.-th.
Gast


Noch nicht ganz wach.

War ja ein C-Quelltext: Zitat frei übersetzt aus C11 -> Wenn die } des int main(void) erreicht wird, wird die main-Funktion mit einem Rückgabewert 0 beendet.
Wenn das in der Endfassung auch da steht, sollte das auf den ersten 20 Seiten zu finden sein.

Wenn andere Werte zurück sollen, muss man es natürlich schreiben

main <- old K&R-C-Stil
int main(void) <- aktuelles C, wenn keine Argumente
void main() <- war nie Standard, aber einige Compiler akzeptieren das - ist auch in MSDN-Beispielen zu finden.

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: