Mehrere Fragen wegen C...HILFE !

Post Reply
Message
Author
Tux die Infobox

Mehrere Fragen wegen C...HILFE !

#1 Post by Tux die Infobox »

Erstmal möchte ich jedem danken, der sich die Zeit nimmt diese Beiträge zu lesen !

Also dann mal los.
1.) Was muss ich machen, um auch eingelesene Char-Werte mit If-Anweisungen vergleichen zu lassen. Wenn beispielsweise eine Zahl einer Char-Variable zugewiesen wurde, dann reicht es scheinbar nicht, den Vergeleichswert in Anführungstriche zu setzetn (wie in TurboPascal).

if (x==1) \*normale If-Anweisung mit x = Int.-Wert*\
{
}

if (x=="1") \*x = Char-Wert, aber so geht es nicht...*\
{
}

2.) Netterweise wurden mir in einem anderen Beitrag mehrere Möglichkeiten offenbart, wie ich es schaffe im Textmodus den Bildschirm "leeren" zu lassen. So dass keine Zeichen mehr auf ihm enthalten sind. Als einfachste Möglichkeit habe ich dabei die Form-Feed-Methode angesehen (\f), doch leider hat sie bei mir nicht funktioniert. Es war kein Unterschied, ob ich dieses Formatzeichen benutzt habe oder nicht. Ich habe in meine C-Bücher geschaut und es schließlich auch dort gefunden, aber irgendwas ist nicht richtig gelaufen dabei.

Die anderen beiden Methoden 'ncurses' und '#define cls printf("\033[23");' habe ich nicht weiter ausprobiert. Die Letztere der beiden der beiden scheint sowieso nicht so zuverlässig zu sein bzw. Terminalabhängig und für die andere bräuchte ich mehr Infos zur genauen Syntax, denn in beiden von mir benutzten C-Büchern wird kein Wort über diesen Befehl oder Funktion verloren. Ist es vielleicht möglich, dass es sich dabei um einen C++-Befehl handelt ? Wenn ja, dann hat sich diese Frage erledigt ;).

3.) Ich bin mir sicher auch unter C wird es eine Möglichkeit geben, Zeichen oder auch Intergers direkt ohne Return-Bestätigung einzugeben. Mit scanf() und getchar() funktioniert es nicht. Wie heisst der von mir gesuchte Befehl bzw. die Funktion ?

Und wieder Danke schonmal im Vorraus !
Bitte Antwortet auch, wenn ihr nur eine oder zwei der drei Antworten beantworten könnt. Ich bin für JEDE Hilfe dankbar ! ;)

Grüße,
Euer Tux die Infobox

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Mehrere Fragen wegen C...HILFE !

#2 Post by hjb »

Hi,

1. Chars werden in einfache Anführungszeichen gesetzt, nicht in doppelte.

2. Da auch CTRL-L den Bildschirm löscht, sollte es auch printf("\014"); tun.

3. Unter UNIX generell read(). Diese Funktion wartet allerdings so lange, bis tatsächlich ein Zeichen vorliegt, notfalls endlos. Außerdem werden Escape-Codes nicht speziell behandelt, daher ist das Einlesen von Funktions- oder Cursortasten ziemlich umständlich. Abhilfe schafft hier wiederum die ncurses-Library. Es gibt abar auch Libraries, die die Funktionen kbhit() und getch() bereitstellen, wie sie von Turbo Pascal bekannt sind. Nach denen kannst du auf FreshMeat suchen.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Post Reply