Summernoon schrieb:
1.Versteh ich nicht. Stream ? flush ?
Wenn du in einen ostream (cout ist ein ostream, aber das nur am Rande ;)) schreibst, landen die Daten erstmal in einem internen Stream-Buffer. Dieser wird in regelmäßigen Abständen wieder geleert - und erst dann landen die Daten tatsächlich in der Ausgabe (bei cout: auf dem Monitor). 'flush' sagt dem Stream, daß er seinen Buffer genau jetzt entleeren soll (selbst wenn er eigentlich noch etwas Zeit dafür gehabt hätte).
(und endl schreibt erst ein '\n' auf den Stream, bevor es ihn ebenfalls flusht - das kann mitunter stören, weil es den Cursor in die nächste Zeile schiebt)
Ich wiederhole:
SideWinder schrieb:
Also brav "Für Programmieranfänger" lesen und nach der Einbindung in dein Projekt...
Du hast offenbar die IC nicht in dein Projekt eingebunden.
MfG SideWinder
So, hab jetzt selber eins gefunden!
Jedoch gibt es schon wieder ein Problem...
Wenn ich ein Zeichen an z.B. gotoxy(50,28); setze, läuft die Scrollbar von y mit, sodass man das Zeichen sieht, ohne das man an der Scrollbar etwas ändern soll muss, und das Zeichen suchen muss.
Jedoch geht das mit der x - Achse nicht. z.B. gotoxy(100,1); cout<<"X";
Da läuft diue Scrollbar nicht nach rechts, bis man das Zeichen sieht.
Gibt es da irgendwas?
Das ist der verwendete Scrollbarcode, der eigentlch nur die Größe der Konsole festlegt.
Ich danke euch im Voraus!
#include <windows.h>
#include <conio.h>
int main()
{
HANDLE hConsole;
COORD coord;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
coord.X = 100;
coord.Y = 30;
SetConsoleScreenBufferSize(hConsole, coord);
_getch();
return 0;
}
Ich tippe eher darauf, daß der Compiler sich noch nicht so streng an den C++ Standard hält (oder daß du das Programm in C compilierst). Nach ANSI C ist es erlaubt, eine unbekannte Funktion aufzurufen (dabei deklarierst du diese Funktion implizit mit Rückgabetyp als int func(); - solange das zum tatsächlichen Prototyp passt, läuft dein Programm problemlos), in C++ ist es verboten.
So weit ich das jetzt verstanden hab willst auf einen Parameter von einer variablen parameterliste einer Funktion schreiben.
Lösung die Addresse des Parameters übergeben
Wie bei normalen Funktionen.
mfg tobZel
Ich glaube ich versteh endlich was ihr mir sagen wolltet, ich habe nicht besonders nachgedacht als ihr mir die vielen infos geschrieben habt.
Aber jetzt weiß ich wie ich das mache.
Bedank mich herlich bei euch
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Stelfer schrieb:
getch <o>
ohallo // kann doch garnet sein oO ? wegen '\n' eine zeile davor
gets <ohallo> // hm normal gibts keinen puffer beim getch
getch() liest direkt von der Tastatur - aber in dem Fall wird das von getch() abgefangene Zeichen trotzdem in den normalen Tastaturpuffer (für gets()/scanf()/...) weitergeleitet, so daß du es doppelt erhältst.
ohallo // wie soll das gehen ?
getch <o>
gets <hallo>
wie kekse schrieb - da wird getch() einfach auf das Standard-getc() gemappt (und das bekommt seine Daten erst, nachdem der Eingabepuffer geflusht wurde - also beim ENTER).
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
hmm ja nein...
Die Frage ist doch:
Wie kann ich verschiedene Eingabe gleichzeitig in der Konsole annehmen(=Eingabefelder)
Dachte das so, dass man dann einfach ein Konsole in die Konsole packt und in soweit verändert, dass man nur noch den Bereich der Eingabe sieht.
hmm ok thx, hatte das mal in nem anderen Forum vor längerer Zeit gelesen das man die nächste Zeile mitverwendet indem man einfach ein \ macht, naja danke vielmals für eure Hilfe, es klappt natürlich, seid echt spitze *schleim*(*lol*)
BTW:
void main(void)
{
std::ifstream in ("map.txt");
while ( !in.eof () )
{
string c;
c = in.get ();
std::cout << c;
}
getch ();
}
Dein Code ist übrigens sehr unperfomant sowie das std::string ist wirklich unnötig. Benutzer doch einfach char, wie ich es dir gezeigt habe. So funktioniert es auch. Denn du initialisierst den string innerhalb der Schleife, und somit wird bei jedem Durchlauf extra der Konstruktor von std::string aufgerufen, Speicher alloziiert, Speicher wieder freigegeben, Funktionsaufrufe getätigt, und und und. Das geht gewaltig auf die Geschwindigkeit. Wenn du mal eine sehr große Map hast, könntest du dir diese verlorene Rechenzeit bestimmt besser wo anders einsetzen ...
Das mit dem Makro war vorgegeben, hab ich mir nicht ausgedacht.
Anyway, da steht halt nur das was immer von system("Pause") angezeigt wird, nichts weiter. Komisch irgendwie...