C lernen, Anfangs klappt schon nichts ;)

hazzilein

Lieutenant
Registriert
Mai 2008
Beiträge
692
Hallo, will mir C beibringen, hab mir also das Buch "C - Programmieren von Anfang an" aus unserer FH Bibliothek ausgeliehen.
Danach habe ich mir Dev-C++ runtergeladen.
Ich habe eine neue Quelldatei erstellt, und folgenden Beispielcode eingegeben

#include <stdio.h>
main()
{
printf("\nDies ist ein erstes C-Programm.\n");
printf("\nWie Sie sehen, kann 'printf' ");
printf("nicht nur Texte drucken,\n");
printf("sondern auch rechnen.\n\n");
printf("13 * 7 = %i \n",13 * 7);
}


dann auf STRG + F9 geklickt um zu kompilieren und danach auf F9 um auszuführen.

Es öffnet sich zwar das schwarze Fenster und ich kann auch erkennen dass das richitge drinsteht, allerdings schließt es sich sofort wieder, man kann kaum erkennen was drinsteht so schnell geht das. W

Weiß jemand woran das liegt?
 
mit welchem Tool schreibst du diesen Code???

Visual Studio????

wenn ja, dann bitte STRG + F5
 
Auch mit Dev-C++, er kompiliert ja richitg, kommt kein Fehler, auch beim ausführen kommt kein Fehler aber das programm startet eben nur kurz in dem schwarzen Fenster das aussieht wie ein Dos Fenster, weiß grad ned wies heißt und schließt dann gleich wieder
 
das ist eine Konsolenanwendung....


#include <iostream>
using namespace std;

int main() {
cout << "Hello World!" << endl;
getchar(); //Damit sich das Programm nicht sofort wieder beendet.
return 0;
}


versuchs mal so.... mit

getchar();
 
Naja in dem Buch steht es so .... schon klar dass es kein DOS Fenster is, konnts nur ned anders beschreiben ;)

meinst du so? Verzeihung ich bin echt ganz am Anfang... da öffnet er war das schwarze Fenster aber es kommt nix ;)

#include <stdio.h>
main()
{
getchar();
printf("\nDies ist ein erstes C-Programm.\n");
printf("\nWie Sie sehen, kann 'printf' ");
printf("nicht nur Texte drucken,\n");
printf("sondern auch rechnen.\n\n");
printf("13 * 7 = %i \n",13 * 7);
}
 
Das Problem ist dass dein Programm nur Ausgaben auf die Konsole macht und sich danach sofort wieder beendet. Daher siehst du nur Kurz das Konsolenfenster aufgehen und sofort wieder schließen.

Wenn du am Ende deines Codes auf eine Eingabe wartest, bleibt das Fenster offen und du kannst es mit einer Eingabe auf der Tastatur beenden.

@Istanblueee
er schreibt doch C....und net C++...also nix mit cout un so ;)
 
Zuletzt bearbeitet:
probier mal

#include <iostream>
#include <stdio.h>
main()
{
getchar();
printf("\nDies ist ein erstes C-Programm.\n");
printf("\nWie Sie sehen, kann 'printf' ");
printf("nicht nur Texte drucken,\n");
printf("sondern auch rechnen.\n\n");
printf("13 * 7 = %i \n",13 * 7);
}

getchar(); //hält die konsole offen
 
Das ganze sollte auch eher so aussehen:

Code:
#include <stdio.h>

void main(void) {

       printf("\nDies ist ein erstes C-Programm.\n");
       printf("\nWie Sie sehen, kann 'printf' ");
       printf("nicht nur Texte drucken,\n");     
       printf("sondern auch rechnen.\n\n");  
       printf("13 * 7 = %i \n",13 * 7);
}
 
Nun ja...getchar wartet nur auf eine Eingabe...vor den ganzen printf's wird dir das nix bringen.

Und die iostream brauch er auch nicht, zumal das wieder C++ ist...
 
Weiß echt nicht weiter, hier im Buch steht es so.
Wie kann ich machen dass ich durch Eingabe das Programm beende?
Nächstes Beispiel, selbes Spiel, er schließt gleich wieder ...

#include <stdio.h>
main() {

printf("\nJetzt rechne ich: \n");
printf("3 + 2 = %i\n3 - 2 = %i\n" ,3+2, 3-2);
printf("12 * 3 = %I\n" ,12*3);
printf("12 / 3 = %i\n\a" ,12/3);
}
 
ja mach doch mal ein getchar() am schluss hin. Wie gesagt du gibst nur was aus und danach ist deine Main abgelaufen, sprich das Programm is beendet sprich das Fenster geht zu ;)

Wenn du wie gesagt am Ende deiner Ausgabe auf ne Eingabe wartest, dann bleibt das Fenster offen.

Schaus dir einfach ma an: getchar()
 
#include <stdio.h>

void main(void) {

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

so sollte es dann funktionieren. Wenn nicht einfach vor getchar() und nach den printf's noch fflush(stdin) einfügen
 
Windows spezifisch kannst du auch
system("PAUSE");
am ende machen, aber das kocht eh immer sein eigenes süppchen
 
geht nicht.
3 C:\Dev-Cpp\Unbenannt1we.cpp `main' must return `int'
C:\Dev-Cpp\Unbenannt1we.cpp In function `int main(...)':
10 C:\Dev-Cpp\Unbenannt1we.cpp expected `;' before '}' token

wenn ich am Ende das mit Pause hinsetze kommt das

C:\Dev-Cpp\Unbenannt1we.cpp In function `int main()':
9 C:\Dev-Cpp\Unbenannt1we.cpp `system' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
 
wenn du int main() angibst dann musst du in deiner Main auch n return angeben...also einfach so

Code:
int main(void)
{
  ...
  return 0;
}

Bei der return anweisung springt er aus der Funktion (in dem Fall die Main) raus, da du int main() angegeben hast wird auch ein int als Rückgabe erwartet.
du solltest auch ma plz angeben was du jetzt gändert hast...einfach die Compiler-Fehler anzugeben is bissi mager ;)

Ja da fehlt dir halt für das system ne include...der weiß net was das is. Aber vergiss das lieber wieder
 
Zuletzt bearbeitet:
Lest mal diese Kundenrezession zu dem Buch er beschreibt das Problem.

Hab das system("pause"); jetzt eingefügt also so aber es geht noch immer nicht

/* bsp.c */
#include <stdio.h>
main(){

printf("\nJetzt rechne ich: \n");
printf("3 + 2 = %i\n3 - 2 = %i\n" ,3+2, 3-2);
printf("12 * 3 = %I\n" ,12*3);
printf("12 / 3 = %i\n\a" ,12/3);
system ("pause");
}


Ich schreibe ja nicht INT Main sondern NUR main() ...

das geht auchnicht


#include <stdio.h>
int main(void){

printf("\nJetzt rechne ich: \n");
printf("3 + 2 = %i\n3 - 2 = %i\n" ,3+2, 3-2);
printf("12 * 3 = %I\n" ,12*3);
printf("12 / 3 = %i\n\a" ,12/3);
return 0;
}
 
Zuletzt bearbeitet:
Also für system musst du stdlib.h inkludieren, also
Code:
#include <stdio.h>
[B]#include <stdlib.h>[/B]

int main()
{
...
return 0;
}

[Edit]
Kannst du bitte alle compiler fehler angeben?
 
Zuletzt bearbeitet:
Oh man -.-

Mach doch einfach

Code:
#include <stdio.h>

int main(void)
{
  printf("blablabla\n");
  printf(...);
  ....
  getchar();
  return 0;
}
 
Zuletzt bearbeitet:
Ok Dabig tank so gehts, sorry hab heute erst damit angefangen für mich is das komplettes neuland....

aber wieso geht das jetz nicht so wiesim buch steht, komisch ... hoffentlich komme ich so durchs buch durch muss das ja jetz bei jedem beispiel abändern
 
jo is ja kein Prob dafür is ja so n Forum da ;)

Merk dir einfach, dass wenn du ne normale Konsolenanwendung schreibst, er die Anweisungen einfach abarbeitet und wenn du auf keine Eingabe wartest oder ne Verzögerung einbaust, das Programm sofort wieder beendet wird. Daher siehst du das Fenster in dem Fall nur kurz aufgehen.
 
Zurück
Oben