Kompilieren und ausführen
-
Hi. Ich hab ein Problem ich hab erst neu angefangen mit C was zu machen komme aber nicht wirklich vorran . Hab jetz den Bloodsheed Dev. C++ Compiler und den MVC++ Compiler. Hab dann erstmal zum austesten diesen Code eingetippt:#
# include <stdio.h> # include <stdlib.h> int wert; int wert = 1 printf("Die %d. Zeile hat %d Buchstaben!\n", wert, 26); wert = 2; printf("Dies ist die %d. Zeile!\n", wert);
wenn ich jetzt beim Dev Compiler auf Compelieren gehe macht er das auch und die Datie wird als C++ Dok. abgespeichert aber wenn ich dann auf Ausführen gehe sagt er immer "nicht Compiliert"!
Warum?
Wennich es mit dem MSV Comp. will nmach ich immer:
"cl /dateiname oder pfad"
und dann kommt immer die antwort: Die Syntax für den Dateinamen, Verzeichnissnamen oder die Datenträgerbezeichnung
ist falschWas mache ich denn jetz falsch oder stimmt was mit dem Code nicht?
-
Lol
Das stimmt in der Tat nicht.Du kannst nicht einfach Anweisungen(hier printf) beliebig hinklatschen.
Sie müssen in einer Funktion stehen.
Im Standard ist mindestens eine main-funktion vorgesehen, die den Anfang deines Programms darstellt. Demnach:# include <stdio.h> # include <stdlib.h> int wert; int main() { int wert = 1; printf("Die %d. Zeile hat %d Buchstaben!\n", wert, 26); wert = 2; printf("Dies ist die %d. Zeile!\n", wert); }
PS: Semikolon fehlte auch.
-
oh ja okay. hab das jetz mal so kopiert wie du es geschrieben hast wenn ich jetz auf Compilieren gehe dann wird eine Zeile immer rot und hat am schwarzen rand nen x . wenn ich da drauf klicke kommt nen grüner haken was soll das denn bedeuten? wenn ich das prog Comp. und dann ausführen will kommt da jetz aber immer noch die Anweisung: Nicht Kompiliert....
-
Ich glaub was du beschreibst sind im DevC++ Stoppunkte für den Debugger. Klick mal solange auf den rand, bis die Zeile nicht mehr markiert ist.
Dann gehst du auf "Ausführen"->"Kompilieren + Ausführen" (alternativ einfach [F9]).
-
Ja stimmt jetz gehts.. Ich hab mir den Compiler mal ganz genau angeschaut was der immer will
das waren alles erroprs oder auch fehler wie z.B. ein Fehlenes Semikolon oder sowas... Nur wenn ich das jetz Kompiliere dann speichert derdas ja bei zumindest auf dem Desktop ab. Wenn ich dann draufklicke öffnet sich dasProg und schliesst sich sofort wieder also besser gesagt ich kanns nicht ausführen... Woran liegt das denn schon wieder
-
Weil das Programm fertig ist.
Schau in der FAQ nach, da stehts drin, wie man es verhindert.
-
Jo klappt jetz alles das Programm-Fenster bleibt auch geöffnet und so zumindest bei diesem Code hier:
main() { int z; int n; int a; int x; printf( "Zu teilende Zahl: "); scanf( "%d", &z); printf( "Teiler: "); scanf( "%d", &n); printf( "Anzahl Nachkommastellen: "); scanf( "%d", &a); x = z/n; printf( "Ergebnis = %d.", x); for( ; a > 0; a = a-1) { z = 10*(z - n*x); if( z == 0) break; x = z/n; printf( "%d", x); } printf( "\n"); }
aber wenn man jetzt die Zahl und den Teiler und die Nachkommastellen angibt , dann gibt das Prog. kein Ergebniss aus... Sondern das Programm geht einfach aus... Wo steckt der fehler im Code?
-
-
Hab das so gemacht wie im FAQ aber irgendwie funktioniert das nicht! und muss ich die wait() Funktion auch deklarieren? KLar oder? also "int wait;" oder nicht?
-
void wait () { setvbuf(stdin,NULL,_IONBF,0); setvbuf(stdin,NULL,_IOFBF,BUFSIZ); getchar(); } main() { int z; int n; int a; int x; printf( "Zu teilende Zahl: "); scanf( "%d", &z); printf( "Teiler: "); scanf( "%d", &n); printf( "Anzahl Nachkommastellen: "); scanf( "%d", &a); x = z/n; printf( "Ergebnis = %d.", x); for( ; a > 0; a = a-1) { z = 10*(z - n*x); if( z == 0) break; x = z/n; printf( "%d", x); } printf( "\n"); wait(); }
Mach's so.
-
Hab noch ne bessere lösung gefunden. Zumindest ist es so kürzer:
getchar(); return = 0;