2012-10-16 10 views
12

Ich verwende Bool-Datentyp in C Std99, deren Definitionen in <stdbool.h> definiert sind. Jetzt möchte ich, dass der Benutzer mir Input gibt. Welchen Formatspezifizierer muss ich in scanf verwenden, um den booleschen Wert von 1 Byte vom Benutzer einzugeben und ihn anschließend in meinem Programm zu manipulieren.Formatspezifizierer in scanf für Bool-Datentyp in C

Antwort

16

Es gibt keine.

Verwenden Sie ein temporäres Objekt, da die Größe _Bool implementierungsabhängig ist.

#include <stdbool.h> 
#include <stdio.h> 

bool b; 
int temp; 

scanf("%d", &temp); 
b = temp; 
1

Es gibt keine spezielle Art für bool in C. In C true oder false durch ganzzahlige Wert 1 and 0 bezeichnet ist. Also Format-Spezifizierer wäre %d.

Es gibt eine weitere Diskussion von C Boolean in Stackoverflow. Here it is.

+3

Konvertierungsangabe '% d' ohne Größenangabe bedeutet, dass der Argumenttyp' int * 'ist, aber' bool' kann die gleiche Größe wie 'char' haben. – ouah