C의 bool 데이터 형식에 대한 scanf 형식 지정자
C std99에서 bool data type을 사용하고 있으며, 그 정의는 다음과 같습니다.<stdbool.h>
이제 사용자가 나에게 입력을 주었으면 합니다.사용자로부터 1바이트의 부울 값을 입력한 다음 프로그램에서 나중에 조작하기 위해 scanf에서 사용해야 하는 형식 지정자입니다.
없어요.
temp 개체를 다음 크기로 사용합니다._Bool
구현에 의존합니다.
#include <stdbool.h>
#include <stdio.h>
bool b;
int temp;
scanf("%d", &temp);
b = temp;
실제 질문은 다음 특정 항목에 대한 것이 아닙니다.bool
왜냐하면 인간의 언어에는 "bools"가 없기 때문입니다(어느 정도 입력이 될 수 있습니다).인간의 언어는 문자와 숫자 등을 알고 있다.이러한 경우 형식 지정자가 있습니다.
실제 질문은 입력에 bool 값이 어떻게 표시되는가입니다.
- 1이에요, 0이에요?
- 참입니까 거짓입니까?
- 예, 아니오?
입력 내용에 따라 일치하는 형식 지정자를 선택해야 합니다.그리고 두 Bool 값을 구분합니다.
의 예1
그리고.0
입력내용을 Bool로 나타냅니다.
bool b;
int i;
printf("1/0:\n");
scanf("%d", &i);
if (i) {
b = 1;
} else {
b = 0;
}
여기에 입력되는 것은2
로 간주되다1
따라서 엄격한 구현을 원하는 경우 오류 확인/처리만 수행하면 됩니다.1
또는0
입력에 있습니다.
면책사항: scanf()는 안전하지 않고 안전하지 않습니다. 쓰지 마세요!이 예는 bool에 대한 번역 입력 방법을 보여주는 데모에 불과합니다.
사용자로부터의 입력을 Boolean으로 직접 받는 방법은 없습니다.단, 임시변수를 사용하고 if-else를 사용하여 사용자로부터 입력을 받아 Boolean 형식으로 저장할 수 있습니다.
- 그러기 위해서는 <string>을 사용해야 합니다.h> 및 그 내장 함수 strcmp
방법은 다음과 같습니다.
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
int main() {
bool x;
int temp;
char y[5];
printf("Enter Boolean Input True or False: - \n");
scanf("%s", &y);
if(strcmp(y, "True") == 0){
temp = 1;
}
else if(strcmp(y, "False") == 0){
temp = 0;
}
x = temp;
printf("%d", x);
return 0;
}
이 이미지에서 출력을 볼 수 있습니다.
언급URL : https://stackoverflow.com/questions/73598686/scan-boolean-value-using-library-stdbool-h
'source' 카테고리의 다른 글
Java reflection을 사용하여 메서드 파라미터명을 얻을 수 있습니까? (0) | 2022.11.08 |
---|---|
JSON 개체 크기 가져오기 (0) | 2022.11.08 |
로컬 도커 이미지를 모두 삭제하려면 어떻게 해야 합니까? (0) | 2022.11.08 |
'syslog-syslog'는 내부 또는 외부 명령어로 인식되지 않습니다. (0) | 2022.11.08 |
Python 인터프리터의 전체 경로를 찾으십니까? (0) | 2022.11.08 |