Frage zum #define befehl und werte aus datei einlesen
-
hi
ich habe folgende frage:ist es möglich aus einer textdatei "test" in der der wert "800" steht diesen auszulesen und einer variable zuzuweisen? und dieser den define befehl´zuzuweisen
also hätt ich mir das gedacht (pseudo code)
#define SCREEN hoehe
und irgendwo liest er für hoehe den wert ein
int hoehe;
FILE *datei;
datei=fopen("C:\\test.txt" ,"r");
fscanf(datei,"%d", &hoehe);oder macht man sowas anderes?
mein ziel: das programm soll werte aus einer datei einlesen und diese eben beim define einsetzenz.b
#define SCREENH hoehe
#define SCREENB breite
uswhoffe jemand kann mir da weiterhelfen
-
Verstehe ich es richtig, dass Du möchtest, dass z.B. hoehe innerhalb der define-Anweisung durch eine konkrete Zahl ersetzen wird?
Wenn ja, dann dürfte das eigentlich nicht möglich sein, da #define eine Präprozessoranweisung ist, d.h. soll hoehe durch eine konkrete Zahl ersetzt werden, so muss diese während des Übersetzungsvorgang bekannt sein. Dies ist aber bei Dir nicht der Fall.
Mit einem #define SCREENH hoehe erreichst Du nur, dass alle Stellen im Quelltext, an denen Du SCREENH geschrieben hast, durch hoehe ersetzt werden. Allerdings wird hier erstmal nur eine Bezeichnung ausgetauscht, d.h. SCREENH wird nicht durch den Wert von hoehe ersetzt, sondern durch hoehe selber.
-
ich glaub du hast die sache mit #define echt net kapiert.
-
Wofür willst das SCREENH den benutzen, du hast den Wert doch schon in hoehe eingelesen. Wenn es die um den Namen geht nenn diese Variable doch einfach SCREENH.
Oder denkst du dir auf diese Weise "globale" Variablen vermeiden zu können, dann lies den Text von Asgard.
Damit du dann in deinem Programm überall auf hoehe zugreifen kannst, musst du sie global definieren.
Denk allerdings daran, das man die Nutzung von globale Variablen minimieren soll.
-
#define ist eine reine Textersetzung vom Pärprozessor.
Dieser parst die Datei vor dem Compiler und ersetzt alle SCREEN durch hoehe - der Compiler sieht also kein einziges SCREEN