hä? warum geht das nicht?
-
hi!
ich hab ma ne frage(hab vor kurzem mit c angefangen). wenn ich nen "prog." schreibe (zb. wenn ich ne zahl einlesen und ausgeben lassen will) stürzt dass "programm" immer wieda ab (immer dann wenn das "prog" was ausgeben will...), was mach ich falsch?
und wenn ich nen "prog." mit > void < schreibe geht das irgendwie garnet... kann mir einer helfen?
ps: muss ich evtl. noch die header-datein in den ordner kopieren in dem ich das programm ausführe? oda muss ich ne speziele libary installieren?
-
Sorry! Du musst dich schon etwas präzisieren. Also die Header müssen nicht in das Verzeichnis: Schließlich hast du dein Programm schon "kompiliert". Die Librarys sind ja sogesehen schon installiert: Sie wurden mit in das Executable "hineingelinkt".
Zeig doch einfach mal den Source eines deiner Programme. Dann kann man dir auch weiterhelfen.
-
naja, zum beispiel:
#include <stdio.h> #include <stdlib.h> main() { printf( "hi"); }
geht schon nicht, dass hab ich bis jetzt immer so gelöst:
#include <stdio.h> #include <stdlib.h> main() { int ende; printf( "hi"); scanf( "%d", &ende); }
-
EDIT: sorry, das hat nicht ganz geklappt. Aber nun hat man wohl das prob geklärt... .
-
Versuch mal:
#include <stdio.h> int main(void) { printf( "hello world!"); return 0; }
-
Ähm .. ich glaube, dass dein Programm schon funktioniert.
Es stüzt nicht ab, sondern das Konsolenfenster wird von Windows nach Beendigung des Prgrammes automatisch geschlossen, sodass du den Text "Hi" nicht mehr lesen kannst.
Durch scanf() hast du ja nur dafür gesorgt, dass das Programm noch auf eine Benutzereingabe wartet, bevor es sich beendet.
-
jo, aber warum wird das immer geschlossen?? mach ich was beim compilieren falsch? weil das geht bei 3 getesteten rechnern nich...komisch -.-
ich benutze dec-ccp (oda wie das heißt^^) - muss ich da noch was umstellen?thx im vorraus
-
C/C++ Forum :: FAQ - DOS und Win32-Konsole :: Automatisches Schließen verhindern:
http://www.c-plusplus.net/forum/viewtopic.php?t=39328
-
schreib am Ende einfach getch();
#include <stdio.h> #include <conio.h> // wichtig!! um mit getch(); arbeiten zu können muss // diese Headerdatei eingebunden werden. int main(void) { printf( "hello world!"); getch(); return 0; }
das bewirkt daß das Programm nach der Darstellung des Textes auf einen Tastendruck wartet. In diesem Fall ist es egal welche Taste gedrückt wurde.
-
Verwende lieber getchar () da getch () nicht im Standard enthalten ist.
-
SirLant schrieb:
Verwende lieber getchar () da getch () nicht im Standard enthalten ist.
Sorry, aber warum so umständlich?
Wie wärs mit:system("Pause");
====================
Dann wird an der Stelle in der Konosle ausgegeben:
===================
Drücken Sie eine beliebige Taste. . .
===================
Das kann jeder compiler! :p
Im Code:
#include <stdio.h>
main()
{
printf("Hi! (bzw. Hello World!)");system("Pause");
}
-
SirLant schrieb:
Verwende lieber getchar () da getch () nicht im Standard enthalten ist.
Sorry, aber warum so umständlich?
Wie wärs mit:system("Pause");
====================
Dann wird an der Stelle in der Konosle ausgegeben:
===================
Drücken Sie eine beliebige Taste. . .
===================
Das kann jeder compiler! :p
Im Code:
#include <stdio.h>
main()
{
printf("Hi! (bzw. Hello World!)");system("Pause");
}
-
SirLant schrieb:
Verwende lieber getchar () da getch () nicht im Standard enthalten ist.
Sorry, aber warum so umständlich?
Wie wärs mit:system("Pause");
====================
Dann wird an der Stelle in der Konosle ausgegeben:
===================
Drücken Sie eine beliebige Taste. . .
===================
Das kann jeder compiler! :p
Im Code:
#include <stdio.h>
main()
{
printf("Hi! (bzw. Hello World!)");system("Pause");
}
-
Sorry, für den tripple Post! Ich hab auf absenden geklickt und dann is mein PC abgestürzt. Dann hab ich gesehen das es 3x gepostet wurde... Und editieren konnt ich acuh nix, weil ich noch nicht regestriert war.
An einen ADMIN: Zwei von den drei post bidde löschen!MfG,
MCP (Gr, der Name war schon vergeben, da musste ich mir meinen UT2k3 Namen auswählen...)
-
Das ist dann aber AFAIK nicht mehr plattformunabhängig
-
CME386 schrieb:
Das ist dann aber AFAIK nicht mehr plattformunabhängig
Gibts für die anderen Plattformen nicht ähnliche Befehle? Ausprobieren konnte ich es nicht, weil ich kein Linux hab...
Aber trozdem besser als noch unnötig Speicher zu belegen, das wird dann ja nur unübersichtlich!
Wenn man es besser kann, kann man sich ja nen eigenen Befehl programmieren...MfG,
MCP
-
-=[FaStroBe]=_ schrieb:
CME386 schrieb:
Das ist dann aber AFAIK nicht mehr plattformunabhängig
Gibts für die anderen Plattformen nicht ähnliche Befehle? Ausprobieren konnte ich es nicht, weil ich kein Linux hab...
Es gibt natuerlich aehnliche 'Befehle' - die Frage ist nur, wozu braucht man die in diesem Fall?
Aber trozdem besser als noch unnötig Speicher zu belegen, das wird dann ja nur unübersichtlich!
Wenn man es besser kann, kann man sich ja nen eigenen Befehl programmieren...Weisst du was system(""); macht?
Es startet einen neuen Prozess in dem das OS den String interpretiert und dann ausfuerht. Zugegeben, bei system("pause"); ist die Performance egal - aber wozu willst du extra einen Prozess starten, wenn du einfach getchar() schreiben kannst?
-
Es gibt natuerlich aehnliche 'Befehle' - die Frage ist nur, wozu braucht man die in diesem Fall?
Aber trozdem besser als noch unnötig Speicher zu belegen, das wird dann ja nur unübersichtlich!
Wenn man es besser kann, kann man sich ja nen eigenen Befehl programmieren...Stimmt, eigentlich nicht... Hab ich mal wieder auf Umwegen gedacht
Weisst du was system(""); macht?
Es startet einen neuen Prozess in dem das OS den String interpretiert und dann ausfuerht. Zugegeben, bei system("pause"); ist die Performance egal - aber wozu willst du extra einen Prozess starten, wenn du einfach getchar() schreiben kannst?So genau hab ich darüber nicht nachgedacht. Aber stimmt, ich denke jetzt auch das getchar() wegen dem Universellem Bereich besser is. Vor allem isses weniger Schreibarbeit!
MfG,
MCPP.S.: Die Admins machn ja auch viel (Wegem dem triple Post!!! Macht das weg! Bitte...)