Brauche Hilfe beim Programmieren

Halo3

Ensign
Registriert
Apr. 2009
Beiträge
203
Hallo,
Ich will C Programmieren und habe dazu auch ein Buch. Nur brauche ich jetzt auch noch einen Compiler. Dazu habe ich mir einen Open-Source Compiler heruntergeladen und einige Prgramme genauso wie im Buch abgetippt. Am Anfang ging dies noch, doch später zeigte er mir an einigen Stellen Fehler an, obwohl ich es genauso wie im Buch abgeschrieben habe.
Mir wurde dann das Visual Studio empfohlen, doch da finde ich nur C#.
Wie kann ich in Visual Studio C programmieren?

Edit:
Ich habe nur Visual C# Express Edition 2008 installiert. Desweiteren gibt es Visual Basic 2008, Visual C++ 2008 und Visual Wep Developer 2008.
Muss ich noch eins davon Installieren?
 
Zuletzt bearbeitet:
Glaubst du wirklich es ist eine Lösung bei einem Fehler einfach die den Compiler und die IDE zu wechseln? Ich find es sinnvoller die Probleme zu lösen:)

Es wäre Hilfreich wenn du uns die genaue Fehlerausgabe und deinen Quelltext verrätst

Gruß,
tXX
 
Also ich würde auch lieber bei dem Open-Source programm bleiben, weil dieses nicht so das System ausbremst.

Also ich habe das hier eingegeben (aus Buch abgetippt):

#include <stdio.h>

loesche_bild() {
int x;
for(x=1; x<=24; x=x+1)
printf("\n");
}

main() {
int x,y,z;
loesche_bild();
printf("\nBitte x eingeben > ");
scanf("%i",&x);
loesche_bild();
printf("\nBitte y eingeben > ");
scanf("%i",&y);
loesche_bild();
printf("\nBitte z eingeben > ");
scanf("%i",&z);
loesche_bild();
printf("\n%i + %i + %i = %i\n\a",x,y,x+y+z);
}



Ein Fehler wird mir beim ersten "loesche_bild()" angezeigt.
Dort steht: error: ISO C++ forbids declaration of 'loesche_bild' with no type

Es wird bestimmt i-ein dummer Fehler sein :D
 
tXX, er will C programmieren. Dazu eignet sich keine C# IDE, da das eine ganz andere Sprache ist.

Was du brauchst ist, wenn du mit Visual Studio arbeiten willst, Visual C++.
Ich würde allerdings eher dazu raten entweder gleich auf Linux umzusteigen, was vielleicht für den Moment etwas viel ist, oder auf Windows Code::Blocks mit MinGW zu benutzen: Download


/edit: anscheinend hast du ja doch eine IDE für C++, in dem Fall könntest du dabei bleiben, würde aber trotzdem eher auf Code::Blocks setzen.

Dein Fehler ist, dass die Funktion keinen Rückgabewert hat. Wenn sie keinen haben soll muss das auch explizit angegeben werden indem du ein void davorsetzt (bei der main-Funktion sollte man das übrigens auch machen, die hat immer den Rückgabetyp int und gibt 0 zurück, wenn das Programm korrekt ausgeführt wurde):
Code:
#include <stdio.h>

[COLOR="Red"]loesche[/COLOR]_bild() 
{
	int x;
	for(x=1; x<=24; x=x+1)
		printf("\n");
}

[COLOR="#ff0000"]int[/COLOR] main() 
{
	int x,y,z;
	loesche_bild();
	printf("\nBitte x eingeben > ");
	scanf("%i",&x);
	loesche_bild();
	printf("\nBitte y eingeben > ");
	scanf("%i",&y);
	loesche_bild();
	printf("\nBitte z eingeben > ");
	scanf("%i",&z);
	loesche_bild();
	printf("\n%i + %i + %i = %i\n\a",x,y,x+y+z);
	
	[COLOR="Orange"]return 0;[/COLOR]
}
 
Zuletzt bearbeitet:
Du brauchst eigentlich nur einen Editor und den Compiler.
Eine imho gute IDE wäre Dev-C++.
Mit Visual Studio kannst du erst ab C++ etwas anfangen.

Für weitere Hilfe wären die Fehlermeldungen interessant.
 
Das Code::Blocks habe ich bereits.
Kann es sein, dass mir der fehöer angezeigt wird, weil mir i-etwas fehlt?

Ich kenne mich damit noch nicht so aus :( .
 
Zu Dev-C++: es wird seit noch längerer Zeit nicht mehr weiterentwickelt und ist deshalb nur bedingt zu empfehlen.

Dein Fehler: siehe edit oben.
 
Zuletzt bearbeitet:
Versuch es doch mal mit:

Code:
[COLOR="Lime"]void[/COLOR] loesche_bild() 
{
	int x;
	for(x=1; x<=24; x=x+1)
		printf("\n");
}

oder alternativ:

Code:
[COLOR="Lime"]int[/COLOR] loesche_bild() 
{
	int x;
	for(x=1; x<=24; x=x+1)
		printf("\n");
        return 0;
}

Das sollte zumindest den o.g. Fehler beheben. Es liegt nicht am Compiler oder der IDE sondern an Fehler in deinem Code.
 
Zuletzt bearbeitet:
OK
Danke. Mit void funktioniert das ganze :D
Das habe ich auch mit Code::Blocks geschrieben. Im Buch fehlt das void.
 
Ich habe mal mit deiner Fehlermeldung google benutzt und siehe da:

void loesche_bild(void) {
int x;
for(x=1; x<=25; x=x+1)
printf("\n");
}

Dann gehts.
 
Und genau aus diesem Grund wäre Visual C++ für dich das richtige. Denn es redet mit dir und sagt dir was falsch ist, und das sehr detailliert. Programmiere zwar selbst nicht mit C++ sondern mit VB.net, aber ich kanns trotzdem empfehlen.

Das System ausbremsen tut da garnichts. Und gleich vorzuschlagen das Betriebssystem zu wechseln ist auch etwas extrem, weils imho keine Probleme löst.

Visual C++ kann man hier runterladen
 
@ fandre

Ja ich lese die Beiträge, aber wie man sieht hat er das erst später hinzugefügt und ich habe meinen beitrag schon geschrieben ;)
 
@Halo3

Willst du wirklich C lernen oder doch lieber C++? Bzw. mit welchen Ziel möchtest du das lernen. C habe ich selbst nur für Microcontroller verwendet, sonst immer Java oder C++. Falls es auch C++ sein darf, dann solltest du auf Visual C++ Express umsteigen.
 
Das Betriebssystem will ich auch beibehalten.
Ich fange jetzt auch erst an mit C. Später will ich mit C++ weitermachen. Deswegen installiere ich Visual C++. Dann kann ich entscheiden was für mich besser ist. Auf jedenfall ist mein Problem jetzt gelöst :D.
Vielen dank an alle.


Edit:
Also mit C will ich jetzt mal anfangen. Ich will jetzt nur mal so den Aufbau kennen lernen. Mit kontrollstrukturen kenne ich mich ein bischen aus, aber das ist jetzt auch schon 2 Jahre her. Deswegen will ich damit jetzt nochmal anfangen, weil C++ ist anfangs ein wenig kompliziert (habe ich zumindest so gehört).
 
Zuletzt bearbeitet:
ein C - und C++ - compiler:
http://www.bloodshed.net/dev/devcpp.html

:D -> schlechtes buch!

immer rückgabewert angeben:
keiner = void
ganze zahl = long, int
gleitpunktzahl = double, float
etc.

gruß
 
Wenn du eh später auf C++ umsteigen willst, dann kannst du das auch sofort tun. Es sei denn du hast bestimmte Rahmenbedingungen, die dich auf C festlegen, wie z.B. dass du C für eine bestimmte Anwendung brauchst.
 
Drakonomikon:
1. der OS-Wechsel war nur ein möglicher Vorschlag und ist natürlich keineswegs möglich. Extrem finde ich es allerdings nicht, da, wenn man den Schritt erstmal gemacht hat, das Programmieren dort (mir zumindest) viel mehr Spaß macht.
2. Alles andere wurde schon gesagt. Außerdem ist es ja nicht so, dass die anderen IDEs keine Fehler anzeigen. Visual C++ ist was das angeht nicht schlecht, allerdings kann das in der Lernphase auch kontraproduktiv sein, es schadet nicht von vornherein in der Lage zu sein Fehler anhand der Compilerausgaben (die oft schon sehr gut sind) zu finden. Außerdem bietet es noch viel mehr unnötige Funktionen (für den Anfang) als es die anderen IDEs schon tun.

/edit: Ja, C++ sofort würde nicht schaden, wenn dir C allerdings Spaß macht kannst du dich auch noch eine Weile damit beschäftigen. Spätestens wenn du allerdings größere Projekte angehst und nicht durch irgendwelche Umstände auf C festgelegt bist mach C++ in der Regel mehr Sinn.
 
Zuletzt bearbeitet:
Ein Freund hat mir das Buch dazu ausgeliehen. Das will ich mal schnell durchgehen und dann weitermachen mit C++.
Nur eine letzte Frage: Was ist ein rückgabewert?



Edit:

Ich bin jetzt am Überlegen, ob ich doch mit C++ direkt anfange. Gibt es dazu i-ein Buch oder eine Art Tutorial, was empfehlenswert wäre (am besten kostenlos).
 
Zuletzt bearbeitet:
Das weshalb eine Funktion Sinn macht ;)

Wenn du zum Beispiel irgendwelche Berechnungen o.ä. in eine Funktion auslagerst musst du ja das Ergebnis irgendwie wieder in die Aufrufende Funktion bekommen. Deshalb kann eine Funktion einen Wert zurückgeben, den du dann weiterverwenden kannst. Das geschieht mit return und dann dem Wert. Ich denke ein Beispiel veranschaulicht dass am besten:
Code:
#include <stdio.h>

int addiere(int zahl1, int zahl2)
{
	return zahl1 + zahl2;
}

int main(void)
{
	int eineZahl = 12;
	int andereZahl = 13;
	
	int ergebnis = addiere(eineZahl, andereZahl);
	printf("%d+%d=%d", eineZahl, andereZahl, ergebnis);
	
	return 0;
}

Wie du einer Funktion Werte übergibst weißt du ja schon von printf: in Klammern nach dem Funktionsnamen, durch Kommas getrennt. Im Prinzip kannst du eine Funktion jetzt einsetzen, wie du jede andere Variable lesen kannst, hier wird das Ergebnis der Variablen ergebnis zugewiesen und dann ausgegeben. Aber du könntest auch direkt die Funktion benutzen:
Code:
printf("%d+%d=%d", eineZahl, andereZahl, [COLOR="Red"]addiere(eineZahl, andereZahl)[/COLOR]);
 
Zuletzt bearbeitet:
Zurück
Oben