C-Programm (Win-->Mac OSX)

M

marco604

Aktives Mitglied
Thread Starter
Dabei seit
10.10.2004
Beiträge
317
Reaktionspunkte
0
Moin! Ich habe ein kleines Problem mit dem Kompilieren eines Programms das für Windows geschrieben wurde. Es soll einfach gesagt nur eine Tastatureingabe mit einem Wert belegen und diesen dann in ein *.txt-File schreiben. (Das Textfile benötige ich für ein POV-Ray-Programm)

Ich habe schon herausgefunden das es die conio.h nicht auf dem Mac gibt. Explizit brauche ich getch(). Dieser Befehl scheint aber in der <curses.h> zu stehen.

Beim Kompilieren des Programms bekomme ich jetzt aber noch Fehler,.. :(

Ich muss dazu sagen das ich _keine_ Ahnung von C-programmieren habe, vielleicht erbarmt sich ja jmd. das zum Laufen zu bekommen. Ist bestimmt auch nur ne Sache von 5 Minuten (wenn überhaupt). Bin für jeden Tipp dankbar!!!

Ich hänge den Quellcode mal als gepackte Datei an.
 

Anhänge

  • c-cur8.c.zip
    1,6 KB · Aufrufe: 67
Meine praktische Programmiererfahrung mit C liegt schon etwas zurück, meine mich aber zu erinnern, dass es im ANSI-C Standard auch ein paar Bibliotheken mit Basisfunktionen zur Ein/Ausgabe auf die Konsole gibt (stdio.h?) die man dann über Terminal/Shell dann in eine Datei umleiten kann
 
Code:
gcc -lcurses c-cur8.c
geht.

Stürzt dann beim Ausführen ab, aber ich hab auch keine Inputdatei reingetan.

Alex
 
below schrieb:
Code:
gcc -lcurses c-cur8.c
geht.

Stürzt dann beim Ausführen ab, aber ich hab auch keine Inputdatei reingetan.

Alex

Hi, das kompilieren klappt schonmal, leider bekomme ich jetzt die Fehlermeldung

Bus error

wenn ich die Datei ausführe :(

Vielleicht sollte ich das Programm nochmal von vorne aufziehen und selber schreiben in ner Sprache die ich auch kann. Oder gibts sowas vielleicht schon?

Also ein Progrämmchen das Tastaturevents in eine Datei schreibt!?
 
Nimm doch statt getch() getchar()

Gruss

Alex
 
Nach Änderung von getch() in getchar() bringt das Programm bei mir keinen Fehler. Allerdings habe ich es davor nicht probiert. Es funktioniert sowieso nicht (jedenfalls tut es nichts sinnvolles).
 
dannycool schrieb:
Nach Änderung von getch() in getchar() bringt das Programm bei mir keinen Fehler. Allerdings habe ich es davor nicht probiert. Es funktioniert sowieso nicht (jedenfalls tut es nichts sinnvolles).

Naja... es soll halt eine Textdatei anlegen und da bestimmte Werte speichern. Ich brauche so ein File um in einem Raytracer (POV-Ray) eine "interaktive" Steuerung zu bauen, also ich die zu rendernden Bilder live beeinflussen kann. Unter Windows klappts ganz gut. Ich werde die Steuerung glaube ich aber eher als Java Applet schreiben.

Probiere aber zunächst einmal die Verwendung von getchar() aus.

Was bedeutet der Zusatz -lcurses eigentlich genau beim kompilieren. Habe mal einen Kurs C-Programmierung besucht, aber viel ist da nicht hängengeblieben :rolleyes:

Danke schonmal für eure Hilfe!




Edit: Du hast recht, es scheint unter OSX nichts sinnvolles zu machen. :D Au man,.. ich schreib lieber was neues.... Das Programm stammt übrigens von meinem Prof. *g*
 
Zuletzt bearbeitet:
getchar() benötigt im Gegensatz zu getch()(ist übrigens nicht Ansi-C) nach der Eingabe des Wertes noch ein 'Enter'. Das soll nicht immer ein Problem sein, aber bei mir wars das vor Kurzem. :rolleyes: Habe folgende Funktion im c-plusplus.de Forum gefunden:

Code:
#include <termios.h>
      
       int getch() {
           static int ch = -1, fd = 0;
           struct termios neu, alt;
           fd = fileno(stdin);
           tcgetattr(fd, &alt);
           neu = alt;
          neu.c_lflag &= ~(ICANON|ECHO);
          tcsetattr(fd, TCSANOW, &neu);
          ch = getchar();
          tcsetattr(fd, TCSANOW, &alt);
          return ch;
      }

lg, fr00p
 
Zurück
Oben Unten