Befehl in C, ob ein bestimmter Platz belegt ist

Hallo zusammen!

Gibt es einen Befehl in C, der überprüft, ob an einer bestimmten Stelle im Fenster etwas steht? Es muss nicht zwingend auch noch überprüfen, was da steht. Bloß ob der Platz sozusagen schon belegt ist.

Grüße
Mayookie

Nein,

gibt es nicht, denn der C-Standard enthält keine Grafik- und Fensterbibliotheken.

Du müsstest also angeben, welche Bibliothek auf welcher Plattform Du verwendest, um Grafik darzustellen.

Auch müsstest Du sagen, was genau durch wen belegt sein kann, davon hängt ab, auf welcher Ebene eine solche Abfrage stattfindet. Das Fenstersystem ist ja durchaus in der Lage, z.B. Mausklicks dem korrekten Fenster zuzuordnen.

Gruß, Lutz

Hallo Lutz,

vielleicht habe ich meine Frage etwas missverständlich formuliert, oder ich habe dich falsch verstanden. Erst mal bin ich absoluter Anfänger. Grafik- und Fensterbibliotheken benutze ich daher wahrscheinlich nicht. Ich hab in meinem Programm einfach den Cursor verschoben, etwas mit printf geschrieben, wieder den Cursor verschoben und etwas mit printf geschrieben und so weiter. Und jetzt wollte ich wissen, ob es möglich ist zu überprüfen, ob da, wo der Cursor ansetzt schon was steht, damit er gegebenenfalls einfach woanders weitermacht.

Gruß, Mayookie

Hallo,

Grafik- und Fensterbibliotheken
benutze ich daher wahrscheinlich nicht.

Daran wird’s liegen.

C ist eine sehr schlanke Sprache, hat nur wenige Befehle.
Dann gibt es Standardbibliotheken, über die allgemeine, standardisierte Funktionen bereitgestellt werden, die auf (fast) allen Plattformen verfügbar sind. (Und historisch bedingt war eben die Kommandozeilenkonsole der Standard.)

Und dann gibt es sehr spezifische Bibliotheken, über die dann weitere Funktionen des Betriebssystems oder der grafischen Benutzeroberfläche ansprechbar sind.

Aktuelle grafische Benutzeroberflächen sind so komplex, dass Du das lieber noch sein lassen solltest, bis Du die Programmiersprache ausreichend beherrschst. Denn der Umfang des dazu notwendigen Wissens von Betriebssystem und Benutzeroberfläche ist erheblich viel mehr als die Programmiersprache C und ihre Standardbibliotheken.

printf ist Verkehrsübungsplatz. Eher was zum Üben, aber für Fahranfänger deutlich sinnvoller als Berufsverkehr in der Innenstadt.

Ciao, Allesquatsch

Das ist eine der Informationen, die fehlt. In C selbst gibt es keine Möglichkeit, den Cursor zu positionieren. Vor allem nicht vertikal. Dazu braucht es in vielen Systemen die curses oder ncurses-Bibliothek oder die CRT oder WinCRT etc. Bibliotheken, die unter DOS oder Windows mitgeliefert werden.

Curses kann das, was Du willst, da es ein (Text-)Fenstersystem ist und daher die Fensterinhalte zwischenpuffert, CRT kann das (meines Wissens) nicht. Natürlich gibt es einen Bildschirmspeicher, unter DOS konnte man darauf problemlos zugreifen, unter Windows (und *nix) ist dieser mehrere Schutzebenen von Deinem Programm entfernt.

Gruß, Lutz

void SetPosition(int X, int Y)
{
HANDLE Screen;
Screen = GetStdHandle(STD_OUTPUT_HANDLE);
COORD Position={X, Y};

SetConsoleCursorPosition(Screen, Position);
}

Ich verschiebe den Cursor, indem ich die Funktion im Programm mit den entsprechenden Parametern wieder aufrufe. Und ja, ich benutze die windows.h Bibliothek.

Wie Du in der Dokumentation von Microsoft zu den Console-Funktionen lesen kannst,

http://msdn.microsoft.com/en-us/library/windows/desk…

gibt es tatsächlich solche Befehle, wie

ReadConsoleOutputCharacter

oder mit Darstellungsattibuten,

ReadConsoleOutput

Du musst dann selbst prüfen, ob das Zeichen an der aktuellen Position einem Leerzeichen entspricht.

Gruß, Lutz