Problem beim C lernen!

02/16/2012 17:59 Ultim4te#1
Hey

ich habe mir das Buch C Programmieren von Anfang an von Helmut Erlenkötter gekauft. Schön und gut aber schon bei der ersten Aufgabe komme ich nicht weiter :
/* bsp10001.c */
#include <stdio.h>
main(){
printf("\nDies ist ein erstes C-Programm.\n");
printf("\nWie Sie sehen, kann printf ");
printf("nicht nur Teste drucken,\n");
printf("sondern auch rechnen.\n\n");
printf("13 * 7 = %i \n",13 * 7);
}


Das sollte ich schreiben, habe ich auch gemacht aber wie öffne ich das Programm jetzt ?
Der Debugg bei MS Visual C++ geht nicht und die Tipps aus dem Buch helfen mir auch nicht weiter.
02/16/2012 18:05 jacky919#2
main besitzt bei dir keinen Rückgabetyp.
02/16/2012 18:07 Ultim4te#3
Was kann ich da machen ?
So stehe das aber im Buch.
02/16/2012 18:09 jacky919#4
probier's mal so:

Code:
#include <stdio.h>

void main()
{
	printf("\nDies ist ein erstes C-Programm.\n");
	printf("\nWie Sie sehen, kann printf ");
	printf("nicht nur Teste drucken,\n");
	printf("sondern auch rechnen.\n\n");
	printf("13 * 7 = %i \n",13 * 7);
}
02/16/2012 18:13 Ultim4te#5
Ne geht immer noch nicht. Habe MS Visual C++ 2010 Express, aber der Debugg geht nicht also ich nicht schwarz gedruckt sondern grau.
02/16/2012 18:18 jacky919#6
Probier mal

Code:
#include <stdio.h>

void main()
{
	printf("\nDies ist ein erstes C-Programm.\n");
	printf("\nWie Sie sehen, kann printf ");
	printf("nicht nur Teste drucken,\n");
	printf("sondern auch rechnen.\n\n");
	printf("13 * 7 = %i \n",13 * 7);

	getchar();
}
Die Konsole sollte geöffnet bleiben bis du ENTER drückst.
02/16/2012 18:28 Ultim4te#7
Also ich glaube das liegt an Visual Studio, weil der Debugg immer noch grau ist und nicht schwarz.
02/16/2012 18:48 Nightblizard#8
@jacky919
main ist niemals void! [Only registered and activated users can see links. Click Here To Register...]
Ich sollte mir das mal als Lesezeichen speichern, das schreibe ich bestimmt 2x am Tag...

@Topic:
Besorge dir ein anderes Buch, deins scheint Schrott zu sein. Um in Visual Studio ein Programm testen zu können musst du es in ein Projekt packen.
Mache dazu folgendes:
Datei -> Neu -> Projekt... -> Allgemein -> Leeres Projekt -> Namen geben -> Ok drücken. Jetzt ändert sich die Ansicht und du solltest irgendwo (weiß nicht wo das standardmäßig liegt) ein Fenster mit der Beschriftung "Projektmappen-Explorer" ausmachen können. Dort drinnen befindet sich deine Projektmappe, das Projekt und 4 Ordner.
Auf den Ordner "Quelldateien" machst du einen Rechtsklick und wählst "Hinzufügen" -> "Neues Element" und in dem folgenden Fenster "C++-Datei". "main.c" nennen und auf Hinzufügen drücken. In dem sich nun öffnenden Dokument kannst du deinen Code einfügen und mit F5 ausführen.

Ganz einfach, wenn man es ersteinmal gemacht hat. :)
02/16/2012 19:02 jacky919#9
@Nightblizard: Ist mir schon klar. Ich wollte sein Programm nur zum Laufen bringen, ohne ihm erklären zu müssen was ein Rückgabewert oder Datentypen sind, weil ich nicht weiß was er alles schon gelernt hat.
02/16/2012 19:10 käsekuchen11elf#10
Quote:
Originally Posted by Nightblizard View Post
@jacky919
main ist niemals void! [Only registered and activated users can see links. Click Here To Register...]
Ich sollte mir das mal als Lesezeichen speichern, das schreibe ich bestimmt 2x am Tag...
alternativ auch nachzulesen im C standard Punkte 164, 165 [Only registered and activated users can see links. Click Here To Register...]

@Topic:
Visual Studio ist nicht die einzige Programmierumgebung für C/C++, und eigentlich auch nicht die, mit der man anfangen sollte, wenn man 0 Ahnung hat. Versuch, dir erst mal zu erarbeiten, was ein compiler und was ein linker ist, und wie aus einem .c file eine ausführbare .exe datei entsteht. Wenn du das verstanden hast, dann fällts dir auch leichter, dich in Visual Studio einzuarbeiten.

(alternativ kannst du dir auch ein Visual Studio Tutorial reinziehen, und damit leben, dass du nicht jedes detail des Build-Prozesses verstehst :D)

viel Erfolg,
cheesecake
02/16/2012 19:21 Nightblizard#11
Quote:
Originally Posted by käsekuchen11elf View Post
alternativ auch nachzulesen im C standard Punkte 164, 165 [Only registered and activated users can see links. Click Here To Register...]

@Topic:
Visual Studio ist nicht die einzige Programmierumgebung für C/C++, und eigentlich auch nicht die, mit der man anfangen sollte, wenn man 0 Ahnung hat. Versuch, dir erst mal zu erarbeiten, was ein compiler und was ein linker ist, und wie aus einem .c file eine ausführbare .exe datei entsteht. Wenn du das verstanden hast, dann fällts dir auch leichter, dich in Visual Studio einzuarbeiten.

(alternativ kannst du dir auch ein Visual Studio Tutorial reinziehen, und damit leben, dass du nicht jedes detail des Build-Prozesses verstehst :D)

viel Erfolg,
cheesecake
Das ist unsinn. Ich muss nichts über Syntaxbäume, lexikalische und syntaktische Analysen oder whatever wissen, um einen Texteditor bedienen zu können.
Das ist so als würde ich Auto fahren wollen, jedoch muss ich mich vorher mit der Fertigungsstraße vertraut machen, auf denen sie gebaut werden.


Edit:
Quote:
@Nightblizard: Ist mir schon klar. Ich wollte sein Programm nur zum Laufen bringen, ohne ihm erklären zu müssen was ein Rückgabewert oder Datentypen sind, weil ich nicht weiß was er alles schon gelernt hat.
Und desshalb gibst du einem Anfänger falschen Quellcode, damit er ihn adaptieren kann? Erschließt sich mir nicht ganz, aber ich muss ja nicht alles verstehen. :)
02/16/2012 19:26 käsekuchen11elf#12
Quote:
Originally Posted by Nightblizard View Post
Das ist unsinn. Ich muss nichts über Syntaxbäume, lexikalische und syntaktische Analysen oder whatever wissen, um einen Texteditor bedienen zu können.
Das ist so als würde ich Auto fahren wollen, jedoch muss ich mich vorher mit der Fertigungsstraße vertraut machen, auf denen sie gebaut werden.
Naja, um ordentlich Auto fahren zu können, sollte man zumindest wissen wie ein Motor funktioniert, um mal an deiner Analogie festzuhalten ;)
02/16/2012 19:36 Nightblizard#13
Quote:
Originally Posted by käsekuchen11elf View Post
Naja, um ordentlich Auto fahren zu können, sollte man zumindest wissen wie ein Motor funktioniert, um mal an deiner Analogie festzuhalten ;)
Nö. Der Motor dreht auch ohne dass ich etwas über ihn weiß. Ich muss nur wissen "Schlüssel drehen -> Motor an" und "Schlüssel zurück drehen -> Motor aus". Was meinst du wie viele Autofahrer es gibt, die nicht wissen was ein Ottomotor ist?

Edit:
Es kann jedoch durchaus sinnvoll sein diese Dinge zu wissen, um gewissen optimierungen am Code vorzunehmen. Als Anfänger ist das jedoch der totale Overkill!
02/16/2012 19:52 käsekuchen11elf#14
Quote:
Originally Posted by Nightblizard View Post
Nö. Der Motor dreht auch ohne dass ich etwas über ihn weiß. Ich muss nur wissen "Schlüssel drehen -> Motor an" und "Schlüssel zurück drehen -> Motor aus". Was meinst du wie viele Autofahrer es gibt, die nicht wissen was ein Ottomotor ist?
seufz.
Was ich sagen wollte: Wenn sich mehr leute wenigstens mit den Grundlagen von C/C++ beschäftigen würden, kämen wesentlich weniger Fragen à la "Wieso ist der play-knopf bei VS ausgegraut?!1elf"

Im Grunde ist das eigentlich der Fehler von denjenigen, die "Bücher" zu dem Thema verfassen ohne eigentlich Ahnung zu haben...

<offtopic>Und die Welt wäre zweifelsfrei auch schöner ohne Idioten auf der Straße :D</offtopic>
02/16/2012 19:56 MrSm!th#15
Die Grundlagen von C++ haben nichts mit dem Compiler zu tun ;O

@jacky:

Was ist das für ne Begründung? oO Irgendwas kennt der Anfänger halt nicht, in einem Hello World kennt ein Newbie auch keinen einzigen Befehl. Wenn du so argumentierst, solltest du gleich alles weglassen. Er wird schon noch lernen, was das return macht.
Btw. ist void doch auch ein Typ :P Ganz ohne Typspezifizierer gehts nicht.

Ach ja, unterstützt C nicht default-int? Würde heißen, das Beispiel aus dem Buch vom TE ist doch richtig, nur das return fehlt :/