Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: DOS und Win32-Konsole ::  printf - Ausgabefenster verschwindet sofort!  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 20:09:28 12.08.2010   Titel:   printf - Ausgabefenster verschwindet sofort!            Zitieren

Ich bin ein absoluter Anfänger.
Habe mich ein wenig in den ganzen Kram mit c / c++ eingelesen, aber wirkliche Vorkenntnisse habe ich nicht.
Arbeite grad Beispielprogramme durch, um ein Gefühl für die Sprache zu bekommen.

Nehmen wir mal Hello World.


1.

/* Das Hello-World-Programm */

2.



3.

#include <stdio.h>

4.



5.

int main()

6.

{

7.

printf("Hello World!\n");

8.



9.

return 0;

10.

}



Wieso wird mir nach dem kompilieren eigentlich kein Fenster angezeigt? Ich sehe da ganz kurz was blinken, aber in einem Bruchteil einer Sekunde ist das auch schon wieder verschwunden. Ich hab hier ein C/C++ Buch und ein Wikibook, also zwei unabhängige Quellen. Bei beiden Quelltexten der gleiche "Fehler". Compiler ist Pelles C für Windows in der Version 6.00.4.

Hab ich was übersehen? "Muss" das so sein?
SG1
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.03.2001
Beiträge: 2409
Beitrag SG1 Mitglied 21:58:51 12.08.2010   Titel:   Re: printf - Ausgabefenster verschwindet sofort!            Zitieren

bierdosenhalter schrieb:
Wieso wird mir nach dem kompilieren eigentlich kein Fenster angezeigt?


Weil Du nirgendwo Code für "mach mir ein Fenster" hast.

Was Du da hast ist ein Konsolenprogramm. Das ist dafür gedacht, in einer Konsole aufgerufen zu werden. Tust Du das nicht, macht Windows extra für Dein Programm eine auf - und wenn das Programm beendet ist, wieder zu. Also: mach selber 'ne Konsole auf, starte das Programm, werde glücklich.
µngbd
Unregistrierter




Beitrag µngbd Unregistrierter 06:01:33 13.08.2010   Titel:              Zitieren

Fragen kostet ja nichts. FAQ-Lesen aber auch nicht:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-111042.html
:)
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9271
Beitrag _matze Mitglied 06:46:19 13.08.2010   Titel:              Zitieren

...

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?


Zuletzt bearbeitet von _matze am 06:47:03 13.08.2010, insgesamt 1-mal bearbeitet
nachtfeuer
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.04.2010
Beiträge: 980
Beitrag nachtfeuer Mitglied 08:27:15 13.08.2010   Titel:              Zitieren

ja, das problem kenn ich. starte dein konsolenprogramm erst mal aus der konsole heraus. das haben die c-entwickler auch so gemacht.

du könntest alternativ noch ein kleines hallo asm-welt proggi ausprobieren.

dazu drückst du einmal die Windowstaste, gibts debug ein und bestätigst mit enter.

normalerweise öffnet sich dann das konsolenfenster von debug, als eingabepromt der blinkende unterstrich.

dort gibst du den buchstaben a ein, und bestätigst mit enter.

wenn alles passt, dann wird jetzt eine speicheradresse angezeigt und wartet auf eingaben.

hier gibst du folgendes ein, und immer mit enter bestätigen:

mov ah,09
mov dx,109
int 21
int 20
noch einmal enter drücken, um wieder in den normalen eingabemodus zu kommen.

dann gibst du ein:

e109"hallo asm-welt",24
und bestätigst mit enter
dann gibst du den buchstabe g (für go) ein und drückst wieder enter.

kurz was zu den zahlen: der befehl mov dx,109 zeigt auf die adresse der eingabe
der befehl mov ah,09 bereitet den systemaufruf für zeichenketten auf. dieser systemaufruf (int 21) (funktion 9) gibt eine zeichenkette bei adresse dx mit ende-signal 24 aus. der systemaufruf int 20 startet den service für das programmende.

man kann debug mit q wieder verlassen.

Für com programme lässt sich in windows einstellen, ob sich das fenster nach beenden schließen soll oder nicht.

falls du deine kleinen einsteiger-c proggis mal debuggen musst, dann geht das mit debug auch ganz gut. ein bißchen praktischer ist für unix-konsole-c-progs vielleicht der gdb, so wie überhaupt der c-einstieg mit linux irgendwie etwas spannender ist.
(allerdings wartet hier auch schon wieder der editor vi auf einsteiger-opfer ;) )
test4455
Unregistrierter




Beitrag test4455 Unregistrierter 09:52:59 18.08.2010   Titel:              Zitieren

Danke für die schnellen Antworten!
Ich merke gerade, dass Pelles C für Windows auch ne ganz einfache Funktion hat, direkt den Kram ins cmd Fenster zu schubsen.
Kann ich mir den Umweg darüber also sparen.

Sry wegen der FAQ, hab hier zuerst nicht ganz durchgeblickt.

Eine Frage hab ich noch, hab auch die Suchefunktion genutzt.

Ich will folgenden Code kompilieren:

#include <stdio.h>

int Main ()

{

printf("3 + 2 * 8 = %i\n", 3 + 2 * 8);

printf("(3 + 2) * 8 = %i\n", (3 + 2) * 8);

return 0;

}


Bekomme dann folgende Meldung:

Erzeugen von 1.obj.
D:\1.c(5): warning #2027: Missing prototype for 'Main'.
Fertig.


Und wenn ich ne .exe erzeugen will kommt das:


Erzeugen von 123.exe.
POLINK: error: Unresolved external symbol '_main'.
POLINK: fatal error: 1 unresolved external(s).
*** Fehlercode: 1 ***
Fertig.



Linker ist auf Console gestellt.
Stelle ich ihn auf Windows, kommt beim compilen die gleiche Meldung, beim exe erzeugen dann allerdings:


Erzeugen von 123.exe.
POLINK: error: Unresolved external symbol '_WinMain@16'.
POLINK: fatal error: 1 unresolved external(s).
*** Fehlercode: 1 ***
Fertig.


Windows CE bringt dagegen die gleichen Meldungen wie bei Console.

Native bringt wieder beim compilen das übliche, beim exe erzeugen dagegen:

Erzeugen von 123.exe.
POLINK: error: Unresolved external symbol '_DriverEntry@8'.
POLINK: fatal error: 1 unresolved external(s).
*** Fehlercode: 1 ***
Fertig.



Kann mir jemand weiterhelfen?
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9271
Beitrag _matze Mitglied 10:05:10 18.08.2010   Titel:              Zitieren

Die Funktion heißt main, nicht Main. C und C++ sind case-sensitiv! Wundere dich also demnächst nicht, wenn der Compiler PrintF nicht finden kann. ;)

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 12:44:50 29.08.2010   Titel:              Zitieren

Sorry für die späte Antwort, hatte zu tun.

Ja, das war ein Flüchtigkeitsfehler von mir. Danke für den Hinweis, danach funktionierte es auch!
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 18:54:52 31.08.2010   Titel:              Zitieren

Du kannst auch schreiben:
C/C++ Code:
int main()
{
    printf("Hallo Welt!");
    getchar();
    return 0;
}
C/C++ Code:
int main()
{
printf("Hallo Welt!");
getchar();
return 0;
}
C/C++ Code:
int main()
{
    printf("Hallo Welt!");
    getchar();
    return 0;
}

Dann schließt sich die Konsole erst nach einem Tastendruck.

MfG Chris_
Ralf13245
Unregistrierter




Beitrag Ralf13245 Unregistrierter 16:43:48 08.09.2010   Titel:              Zitieren

Code:
system("pause");
Code:
system("pause");
Code:
system("pause");


funktioniert auch prima. heißt zwar immer, daß system nicht so schön ist, aber zum üben interessiert das doch nicht.
C/C++ Forum :: DOS und Win32-Konsole ::  printf - Ausgabefenster verschwindet sofort!  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.