fscanf: wie liest man bool oder unsigend short aus datei?
-
Hi,
Ich möchte eine Konfigurations(text)datei mit verschiedenen Arten Variablen auslesen:
FILE* fp = fopen("c:/Eigene Dateien/Parameter.txt", "r");
fscanf(fp, "%f", &meinFloat);
// das ist klar// wie kann ich aber bool auslesen? mit %(was)
// und wie kann ich unsigend short auslesen? %u ist doch unsigned int...fclose(fp);
Thx,
Chris
-
für _Bool gibt es AFAIK keinen Parameter. Für unsigned short solltest du %hu nehmen
-
Danke, ich probiere es aus.
Chris
-
Für _Bool müsste theoretisch %d gehen...
-
Shade Of Mine schrieb:
Für _Bool müsste theoretisch %d gehen...
Äh, warum dieses?
-
Daniel E. schrieb:
Shade Of Mine schrieb:
Für _Bool müsste theoretisch %d gehen...
Äh, warum dieses?
Keine Ahnung ob es wirklich geht. Ich würde es nur als logisch empfinden.
Denn _Bool ist kleiner als int - es wird somit zu einem int umgewandelt (wie zB char) - und damit würde %d uU funktionieren...
Einen eigenen Formatspecifier hat _Bool ja nicht, deswegen erscheint es mir logisch, dass es irgendwie anders geht.
Wenn meine Gedankengänge falsch sind -> sorry.
-
Shade Of Mine schrieb:
Denn _Bool ist kleiner als int - es wird somit zu einem int umgewandelt (wie zB char) - und damit würde %d uU funktionieren...
Es geht um Eingaben, nicht Ausgaben, also werden Zeiger ausgetauscht, keine _Bools.
-
Daniel E. schrieb:
Es geht um Eingaben, nicht Ausgaben, also werden Zeiger ausgetauscht, keine _Bools.
OK, dann hab ich Blödsinn geschrieben. Sorry.
dh, es geht garnicht?
ist IMHO n defekt im Standard...
-
Das kommt doch drauf an, wie der Bool in der Datei abgespeichert ist. Ich weiß z. B. noch vom alten VB (also nicht .NET), dass es Booleans als #TRUE# oder #FALSE# abgespeichert hat. Also als Text. Genausogut, könnte ein Bool als 0 und 1 abgespeichert werden und in dem Fall würde ja %d wieder richtig sein.