Wie kann ich das "conio" auf dem MAC umgehen?

J

Joergi

Aktives Mitglied
Thread Starter
Dabei seit
20.09.2003
Beiträge
156
Reaktionspunkte
0
Habe mir unter Windows mit Borland Software ein Progi geschrieben, was auch ganz sauber compiliert wurde und lief, aber auf meinem MAC kann ich es nicht zum compilieren unter Xcode bewegen. Habe hier irgendwo im Forum gelesen, das es an der conio bibliothek liegen kann. Gibt es da eine Möglichkeit das zu umgehen, oder was muß ich für eine library angeben um es zum Funzen zu bekommen? Gibt es das nicht auch für Mac, das ich mich einfach ran setze und losschreibe wie unter Sinnlos XP? C++ ist doch eine Sprache, die kann doch nicht da anders sein wie auf dem Mac, ODER ??? :mad:
 
conio ist ein interface für eine c bibliothek wenn ich da richtig liege. habe beiläufig selbiges problem mit einem projekt an dem auch windowser arbeiten. konnte das noch nicht klären bis jetzt.
 
Joergi schrieb:
C++ ist doch eine Sprache, die kann doch nicht da anders sein wie auf dem Mac, ODER ??? :mad:

was hat das mit der sprache zu tun, wenn du libs verwendest, die es nur auf auf dos/windows gibt?
programmier halt plattform-unabhängig, wenn du portieren willst...
 
Ich sitze jetzt zuhause mit einem Berg Hausaugaben und Klausurvorbereitungen die ich in C++ auf meinem Stick mitbekommen habe. Diesen Code muß vich verwenden, was bleibt mir anderes übrig und ne Dose hole ich mir nicht.....Blick ins Portemonaie... ufff :rolleyes:
 
das bastel dir halt macros, die die paar funktionen der lib conio auf posix funktionen ummappen...

weiß nicht, ob das dir hier hilft
http://conio.sourceforge.net/
 
Ich fass es nicht das an Schulen immer noch nicht Plattformunabhängig Programmieren gelehrt wird :(
 
Vielen Dank für den Link, da muß ich mich erst mal schlau machen, aber es sieht ganz brauchbar aus. Das ko... mich an, mir sitzt die Zeit im Nacken.
Was heist Plattform übergreifend :D In einem halben Jahr fangen wir mit Linux an, bis dahin kommt noch SQL PHP, etwas Perl,Java und visual Basic.
 
Zeig doch mal den Code her, wenn das mit conio.h noch nicht geht.
 
Hab dir mal eins der kleinsten Bsp. gesucht

Wir fangen erst an zu programieren, aber jeden Tag 8 Stunden und an zwei Tagen sind es 10. Da wirst du zugeschaufelt mit Input und kannst gar nicht so schnell schlucken. Aber selbst wenn ich die header ganz weglasse kommen fehlermeldungen wie du es in dem anderen Tread von mir ja schon gelesen hast, das mit dem gcc. Hier der Code:
#include <stdio.h>
#include <conio.h>

void main();
{
int speed1,speed2,speed3;
double dAbzug;
char cTaste;

clrscr();

printf("Wie schnell sind sie gefahren?\n");
scanf("%d",&speed2);

printf("Wie schnell war erlaubt?\n");
scanf("%d",&speed1);

printf("War die Messung (i)nnerorts oder (a)userorts?");

fflush(stdin);

scanf("%c",&cTaste);



if(speed2<=100)
{
dAbzug=3;
speed2=speed2-dAbzug;
}
if(speed2>100)
{
dAbzug=speed2*.03;
speed2=speed2-dAbzug;
}



printf("%.1lf Km/h werden abgezogen \n\n\n",dAbzug);

speed3=speed2-speed1;

if(speed3>0)printf("Pech gehabt\n\n\n");

if(cTaste=='I'||cTaste=='i')
{
if(speed3>0&&speed3<=10)printf("Macht 15 Euronen und 0 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>11&&speed3<=15)printf("Macht 25 Euronen und 0 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>16&&speed3<=20)printf("Macht 35 Euronen und 0 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>21&&speed3<=25)printf("Macht 50 Euronen und 1 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>26&&speed3<=30)printf("Macht 60 Euronen und 3 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>31&&speed3<=40)printf("Macht 100 Euronen und 3 PÅnktchen in Flensburg + 1 Monate laufen");

if(speed3>41&&speed3<=50)printf("Macht 125 Euronen und 4 PÅnktchen in Flensburg + 1 Monate laufen");

if(speed3>51&&speed3<=60)printf("Macht 175 Euronen und 4 PÅnktchen in Flensburg + 2 Monate laufen");

if(speed3>61&&speed3<=70)printf("Macht 300 Euronen und 4 PÅnktchen in Flensburg + 3 Monate laufen");

if(speed3>71)printf("Macht 425 Euronen und 4 PÅnktchen in Flensburg + 3 Monate laufen");

if(speed3<=0)printf("Dann kannst du dich glÅcklich schÑtzen.");
}

if(cTaste=='A'||cTaste=='a')
{

if(speed3>0&&speed3<=10)printf("Macht 10 Euronen und 0 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>11&&speed3<=15)printf("Macht 20 Euronen und 0 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>16&&speed3<=20)printf("Macht 30 Euronen und 0 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>21&&speed3<=25)printf("Macht 40 Euronen und 1 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>26&&speed3<=30)printf("Macht 50 Euronen und 3 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>31&&speed3<=40)printf("Macht 75 Euronen und 3 PÅnktchen in Flensburg + 0 Monate laufen");

if(speed3>41&&speed3<=50)printf("Macht 100 Euronen und 3 PÅnktchen in Flensburg + 1 Monate laufen");

if(speed3>51&&speed3<=60)printf("Macht 150 Euronen und 4 PÅnktchen in Flensburg + 1 Monate laufen");

if(speed3>61&&speed3<=70)printf("Macht 275 Euronen und 4 PÅnktchen in Flensburg + 2 Monate laufen");

if(speed3>71)printf("Macht 375 Euronen und 4 PÅnktchen in Flensburg + 3 Monate laufen");

if(speed3<=0)printf("Dann kannst du dich glÅcklich schÑtzen.");
}

getch();
}
 
das Problem liegt ziemlich am Schluss, nämlich im Aufruf von getch().

conio ist nicht in der Standardlib, von daher ist dein Programm nicht Plattformunabhängig, getch() findest du am Mac (und unter Linux) in curses.h
 
Ein erster Hoffnungsschimmer, das werd ich dann gleich mal noch ausprobieren. Das Progi war das Resultat vom zweiten Tag Programierung überhaupt. Morgen kommen Schleifen und Freitag fangen wir mit dem Präprozessor an, was auch immer das sein möge :eek:
 
oder nimm einfach fgetc
 
Joergi schrieb:
Ein erster Hoffnungsschimmer, das werd ich dann gleich mal noch ausprobieren.
das sollte dann gehen :)
Joergi schrieb:
Das Progi war das Resultat vom zweiten Tag Programierung überhaupt. Morgen kommen Schleifen und Freitag fangen wir mit dem Präprozessor an, was auch immer das sein möge :eek:
da kann ich deinen Druck schon verstehen, du solltest dich dann aber (wie in dem anderem Thread) nicht so weit aus dem Fenster lehnen -- von wegen "Bastelei", "so hab ich mir das nicht vorgestellt", etc. ;) . Der Mac ist mit den Developer Tools ne ziemlich feine Entwicklungsmaschine, schrecklicherweise bekommt ihr anscheinend nicht beigebracht wie man plattformunabhängig programmiert (was eigentlich gar nicht so schwer ist :) )
Am zweiten Tag programmieren haben sie euch aber hauptsächlich das tippen beigebracht -- wenn ich mir die ganzen ifs anschaue :D
 
Glaub Du hast wieder Licht in meine Zukunft geracht

SUUUUUPER, :music:
er makelt jetzt nur noch das "void main()" und in der nächsten Zeile die Klammer als Fehler und noch 2 Warnungen bei den deklerationen von speed2.
Tja, an mir liegt das mit dem plattformübergreifenden programieren nicht wenn ich wüßte wie, würde ich es mir ja gleich angewöhnen, schließlich hätte ich ja da auch was davon. :p
 
Joergi schrieb:
SUUUUUPER, :music:
er makelt jetzt nur noch das "void main()"
naja, main ist immer vom Typ int (also int main() ), ausserdem muss das semicolon danach weg
 
Wenn ich das semikolon wegmache makelt er das " clrscr(); " an. Denke mal das das auch wieder mit so nem header zusammen hängt. Liege ich da richtig? Wie bekomme ich überhaupt heraus welchen header ich für welchen Befehl brauche? Auf der Dose ging das mit Rechtsklick (alter Borland Compiler auf DOS).
Aber ich sehe wieder Licht, du hast echt was gut bei mir. DANKE !!!
Hätte mir vieleicht noch nen Laptop gekauft...




Asche über mein Haupt...
 
Joergi schrieb:
Wenn ich das semikolon wegmache makelt er das " clrscr(); " an. Denke mal das das auch wieder mit so nem header zusammen hängt. Liege ich da richtig?.
goldrichtig, hast ja doch schon was gelernt heute ;)
Probier mal clear() stattdessen (ist auch in der curses.h, und die hast du schon inkludiert).

Hast du eigentlich XCode installiert?? Falls ja: schau mal unter Help->Documentation --da ist die Dokumentation der ganzen Befehle und Libs
 
Ja, ich arbeite mit Xcode, war ja schon beim System dazu.
Juhu er hat es Compiliert, aber beim Start kommt
" Zerolink: unknown symbol '_stdscr' "
Könnt mir vorstellen das das Standartscreen oder so was bedeuten könnte und dann noch "Flensburg has exited due to signal 6 (SIGBART)"
 
Hast du einen Befehl drin, der so ("stdscr") lautet?

Ich hab es schnell mal ausprobiert, hier der Code:

Code:
#include <stdio.h>

int main()
{
	int speed1,speed2,speed3;
	double dAbzug;
	char cTaste;
	
	printf("\n");
	printf("Wie schnell sind sie gefahren?\n");
	scanf("%d",&speed2);
	
	printf("Wie schnell war erlaubt?\n");
	scanf("%d",&speed1);
	
	printf("War die Messung (i)nnerorts oder (a)userorts?\n");
	
	fflush(stdin);
	
	scanf("%c",&cTaste);
	scanf("%c",&cTaste);
	
	
	if(speed2<=100)
	{
		dAbzug=3;
		speed2=speed2-dAbzug;
	}
	if(speed2>100)
	{
		dAbzug=speed2*.03;
		speed2=speed2-dAbzug;
	}
	
	
	
	printf("%.1lf Km/h werden abgezogen\n",dAbzug);
	
	speed3=speed2-speed1;
	
	if(speed3>0)printf("Pech gehabt!\n");
	
	if(cTaste=='I'||cTaste=='i')
	{
		if(speed3>0&&speed3<=10)printf("Macht 15 Euronen und 0 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>11&&speed3<=15)printf("Macht 25 Euronen und 0 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>16&&speed3<=20)printf("Macht 35 Euronen und 0 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>21&&speed3<=25)printf("Macht 50 Euronen und 1 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>26&&speed3<=30)printf("Macht 60 Euronen und 3 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>31&&speed3<=40)printf("Macht 100 Euronen und 3 Pünktchen in Flensburg + 1 Monate laufen");
		
		if(speed3>41&&speed3<=50)printf("Macht 125 Euronen und 4 Pünktchen in Flensburg + 1 Monate laufen");
		
		if(speed3>51&&speed3<=60)printf("Macht 175 Euronen und 4 Pünktchen in Flensburg + 2 Monate laufen");
		
		if(speed3>61&&speed3<=70)printf("Macht 300 Euronen und 4 Pünktchen in Flensburg + 3 Monate laufen");
		
		if(speed3>71)printf("Macht 425 Euronen und 4 Pünktchen in Flensburg + 3 Monate laufen");
		
		if(speed3<=0)printf("Dann kannst du dich glücklich schätzen.");
	}
	
	if(cTaste=='A'||cTaste=='a')
	{
		
		if(speed3>0&&speed3<=10)printf("Macht 10 Euronen und 0 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>11&&speed3<=15)printf("Macht 20 Euronen und 0 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>16&&speed3<=20)printf("Macht 30 Euronen und 0 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>21&&speed3<=25)printf("Macht 40 Euronen und 1 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>26&&speed3<=30)printf("Macht 50 Euronen und 3 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>31&&speed3<=40)printf("Macht 75 Euronen und 3 Pünktchen in Flensburg + 0 Monate laufen");
		
		if(speed3>41&&speed3<=50)printf("Macht 100 Euronen und 3 Pünktchen in Flensburg + 1 Monate laufen");
		
		if(speed3>51&&speed3<=60)printf("Macht 150 Euronen und 4 Pünktchen in Flensburg + 1 Monate laufen");
		
		if(speed3>61&&speed3<=70)printf("Macht 275 Euronen und 4 Pünktchen in Flensburg + 2 Monate laufen");
		
		if(speed3>71)printf("Macht 375 Euronen und 4 Pünktchen in Flensburg + 3 Monate laufen");
		
		if(speed3<=0)printf("Dann kannst du dich glücklich schätzen.");
	}
	printf("\n");
	
	return 0;
}

Klappt 1A.
 
Hajo,
das funzt richtig gut, muß nochmal vergleichen was in meiner Version diesen komischen bug verursacht, es wird kompiliert und beim Start bringt er nur einen Fehlercode,den ich letztens schon mal erwähnt habe. Heute hatten wir Schleifen dran, habe es zuhause aufgespielt bekomme es auch schon zum kompilieren hin, aber der bug ist auch da, zwar eine andere fehlerausschrift aber es will auch noch nicht so richtig, denke aber wenn ich bei der Flensburg version den fehler finde, habe ich ihn auch im Ohmschen Geesetz. Meld mich heute bestimmt noch mal.Vielen, vielen Dank eins zwein...:kaffee:
 
Zurück
Oben Unten