Einfaches C Programm ausführen geht nicht...
-
1. Ich habe Microsoft Visual Studio Experess 2013 für Windows Desktop heruntergeladen und installiert.
2. Dort eine neue Text Datei erstellt (weil C Dateien konnte man nicht erstellen, nur Visual C++) und folgenden
Code geschrieben und unter beispiel.c gepeichert:/*Aus dem Buch: 'C: Programmieren von Anfang an', Helmut Erlenkötter*/ #include <stdio.h> main () { printf("\nHello World.\n"); }
3. Dann wollte ich das Programm ausführen:
Test > Ausführen > Alle Tests4. Folgende Fehlermeldung wurde angezeigt:
Es wurde ein unerwarteter Fehler erkannt. Ausführliche Informationen finden Sie im TestausgabebereichWas tun?
Im Buch steht, dass man unter "Eingabeaufforderung" folgendes eintippen und das
Programm ausführen kann: cl beispiel.c
Klappt aber auch nicht
-
Zusatz-Info:
"Debuggen Starten (F5)" kann ich leider nicht anklicken!
-
Kein Mensch der alle Sinne beieinander hat, empfiehlt Anfängern, VisualStudio in der Console zu bedienen.
Werfe solche Bücher weg.
in VS:
- neues C++ - Konsolen - Projekt
- leeres Projekt
- Hinzufügen / neue Datei / beispiel.c
- Strg+F5
-
Ah, habs mit NetBeans realisiert. Musste den Code ein wenig ändern (am Ende Exit_SUCCESS eingefügt) und es hat geklappt.
Eine Frechheit, dass die Codes wie sie in Büchern stehen fast nie funktionieren. Klar wir sollten es schon selber lernen, aber mein Gott
wenigstens HelloWorld kann man ja wohl Anfängertauglich erklären bzw. im Buch den richtigen Code posten!
-
Du kannst deinUnwissen darüber, wie man ein bestimmte IDE bedient, nicht einem Buch über C anlasten. Das hat mit der Sprache nichts zu tun.
Du kannst einem alten Buch auch nicht anlasten, keine neueren Standards zu kennen.
Dass das Buch alt ist, kannst du schon am main() sehen.
Das schreibt man heute auch nicht mehr: http://www.c-plusplus.net/forum/viewtopic.php?t=39346NetBeans ist auch eine IDE und kein Compiler. Aber auch den du benutzt, kannst du auf den alten Standard einstellen.
-
DirkB schrieb:
Dass das Buch alt ist, kannst du schon am main() sehen.
Aber nicht als Anfänger.
-
Man kann es auch am Erscheinungsdatum sehen (1999).
-
Auch damals schon gab es cl.exe auf der Konsole, und damals wie heute ist das hirnverbrannter Unsinn.
-
Darum gehts doch gar nicht.
-
DirkB schrieb:
Du kannst einem alten Buch auch nicht anlasten, keine neueren Standards zu kennen.
Dass das Buch alt ist, kannst du schon am main() sehen.Als Programmier-Anfänger kenne ich die Standards nun mal nicht. Nur wer die Sprache kennt, weiß ob main() alt oder neu ist.
-
melT schrieb:
Als Programmier-Anfänger kenne ich die Standards nun mal nicht. Nur wer die Sprache kennt, weiß ob main() alt oder neu ist.
main() ist wirklich nicht mehr aktuell (wurde ja schon erwähnt ^^)
heute schreibt man int main(), das heißt:
main ist eine Funktion die ein int zurückgibt.
Glaub es gibt auch void main(), also eine Funktion die nichts zurückgibt (nichts !=0 !!!), bin mir da aber nich ganz sicher.
[an dieser Stelle danke an DirkB]Und das Erstellen einer Quelldatei in VS hat Wutz ja bereits erklärt:
Wutz schrieb:
in VS:
- neues C++ - Konsolen - Projekt
- leeres Projekt
- Hinzufügen / neue Datei / beispiel.c
- Strg+F5Beste Grüße
Lordakius
-
main
gibt immer einint
zurück.
Nur damals* wurdeint
als Rückgabewert angenommen, wenn keiner explizit angegeben wurde (bei jeder Funktion).Zu dem Prottyp von main gibt es sogar ein FAQ-Eintrag: http://www.c-plusplus.net/forum/viewtopic.php?t=39346
*Seit C99 (also seit 15 Jahren) gibt es das Verbot des impliziten int.
Aaaaaber MS unterstützt in seinem VS keinen Standard nach C89/C90. Es sei denn, es wird vom C++ Teil abgedeckt (z.B. einzeiliger Kommentar)
-
DirkB schrieb:
*Seit C99 (also seit 15 Jahren) gibt es das Verbot des impliziten int.
Aaaaaber MS unterstützt in seinem VS keinen Standard nach C89/C90. Es sei denn, es wird vom C++ Teil abgedeckt (z.B. einzeiliger Kommentar)Verständnisfrage meinerseits:
Was bedeutet 'Verbot' in diesem Zusammenhang. Wenn ich einen solchen Code(also unter Verwendung von main()) mit gcc und dem flag -std=c99 kompiliere, erhalte ich eine Warnung. Es kompiliert trotzdem. Müsste bei einem Verbot nicht der Vorgang abgebrochen werden?Oder beschreibt -std=c99 keine strikte Einhaltung des C99-Standards?
-
phf schrieb:
Oder beschreibt -std=c99 keine strikte Einhaltung des C99-Standards?
Richtig erkannt.
Dazu ist-pedantic
noch zusätzlich notwendig.
Und dass der Compiler dann auch wirklich abbricht, wird erreicht mit
-pedantic-errors
-
Habt Dank!