nicht AUSSCHIESSLICH, man kann auch einfach conio.h inkludieren und dann gotoxy(x, y) benutzen
hat allerdings den nebeneffekt, dass es nicht mit jedem Compiler klappt, da die conio.h Compilerabhängig ist.
so besitzt der BCB nur eine sehr abgespeckte Version
Hallo
Cfunc() schrieb:
Muss dein Proramm denn unbending eine Konsolenanwendung sein?
Nein, ich konnte es auch mit OpenGL machen, wäre sogar für mich leichter.
Aber ich will mal das bestmöglichste aus der Konsole rausholen ^^
Cfunc() schrieb:
Wenn du ein Spiel programmierst, wäre es einfacher die MFC zu benutzen!
(Oder die API - je nach geschmack,..)
Wenn ich nur die Erfahrung und den Mut dazu hätte .. :p
Cfunc() schrieb:
Da kannst du die Fensterkontrolle selbst übernehmen.
Außerdem kannst du deinem Gamer auch Butten zum Anklicken bieten (kommt immer gut).
Das ist mir schon klar, aber da wäre schon, wie bereits oben erwähnt, OpenGL besser, da man die Tasten belegen kann und so mehr Spaß am Spiel hat, anstatt die ganze Zeit auf irgendwelche Buttons zu klicken.
Mit freundlichen Grüßen,
XP^
So nicht.
Man kann natürlich StdIn und StdOut entsprechend umbiegen und die Textausgabe mit WinGDI im Clientwindow erzeugen. Nur ist bei soviel Aufwand fraglich, warum man dann nicht gleich entsprechende printf bzw. cout Sachen schreibt bzw. kapselt.
ich mache auch nur weil ich es machen muss...wenn ich könnte würde ich es anders machen!aber das problem hat sich bereits erledigt!Man kann innerhalb eines If-Blocks wahrscheinlich einfach mal keine variablen setzen..so einfach wirds sein...
Ok habs kapiert.
ist ja net schlecht das getch.
Ich werd dann ma weiter am Taschenrechner arbeiten und versuchen ihn zu verbessern.
Ich mach dort auch ein Menü rein, einmal um normal zurechnen und um durchschnitt ,prozent... und so auszurechnen.
JimmydaMage schrieb:
Das ist zum Glück dann doch eher unwahrscheinlich
Unwahrscheinlich vielleicht, aber technisch durchaus erlaubt.
(eigentlich wollte ich ja schreiben "daß du damit den vierten Weltkrieg auslöst" :D)
hmmmm?????? schrieb:
ok, danke!
bei doppelclick:
Rechte Maustaste -> Eigenschaften -> Ausführen in (oder wie das heißt...) -> hinter den EXE Namen die Parameter schreiben
hab ich zwar nicht gefunden, aber vc++ reicht aus
in der registerkarte bei verknüpfungen, dort kannst du das ziel ändern.
hustbaer schrieb:
Hm.
Ich würde eher ein Flag setzen welches dem "Console-Input" Thread mitteilt "was auch immer du gerade bekommen hast, ignorier es und beende dich", und dann einfach nur ein "Enter" schicken.
Sonst kann es (schätze ich - ausprobiert hab' ich es nicht) passieren dass du statt "quit" z.B. "ququit" reinliest, nämlich wenn der User gerade dabei war "quit" einzutippen (und nur bis "u" gekommen ist bevor dein worker Thread "quit" geschickt hat)...
Da hast du recht, den Flag habe ich jetzt hinzugefügt, damit dieser Fall nicht mehr auftreten kann.
Ich hatte mir noch eine anderen Ansatz überlegt, der etwas einfacher wäre:
HANDLE stdIn = GetStdHandle(STD_INPUT_HANDLE);
char buffer[] = "quit";
DWORD bytesWritten;
BOOL written = WriteFile(stdIn, buffer, sizeof(buffer), &bytesWritten, NULL);
HRESULT error = GetLastError();
Allerdings wird als Fehler gemeldet, dass das übergebene Handle ungültig sei. Kann sich jemand vorstellen, woran das liegt?
Es wird nirgends Platz für ein Zeichen reserviert.
// Reservierung eines *Zeigers auf ein Zeichen* - kein Speicher für ein Zeichen
char * pZeichen;
// In C werden Strings so gehandhabt, dass ein Zeiger auf das erste Zeichen des Strings zeigt und dann einfach solange jedes darauffolgende Zeichen (Byte) zum String gehört bis im Speicher 0 steht
// Zuweisung der Adresse des ersten Zeichens des Literals "hallo" an pZeichen
pZeichen = "hallo";
// Ein literal ist ein konstanter string der as-is im programm vorkommt. der hat bereits von anfang an speicher, muss ja irgendwo liegen (daten segment)
MfG SideWinder
Aehm... Ich verweise dazu nochmal auf die FAQ - Unterschiede zwischen DOS und Win32-Konsole. Die Konsole hat IMHO nicht viel mehr mit DOS gemein als mit Linux. Die Programmstruktur ist eine komplett andere. Folglich kann ein fuer die Konsole compiliertes Programm ohne speziellen Extender auch nicht unter DOS laufen - egal, ob es spezielle Grafikobjekte benutzt oder nicht.
Wenn man versucht, ein Konsolenprogramm in DOS zu starten, gibt das idR. eben die von Bleibtreu zitierte Ausgabe.
Hier hast du genau das was du suchst: http://www.zfx.info/Tutorials.php?ID=84
Allerdings ist ein Chatprogramm in der Konsole nach dieser Methode nicht sehr komfortabel Aufjedenfall sollte das Tutorial deine Vorausetzungen erfüllen können. Allerdings sind C++ Kenntnise vorausgesetzt!
Viele Grüße,
Patrick