source

C의 bool 데이터 형식에 대한 scanf 형식 지정자

gigabyte 2022. 11. 8. 21:07
반응형

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;
}

이 이미지에서 출력을 볼 수 있습니다.

1

언급URL : https://stackoverflow.com/questions/73598686/scan-boolean-value-using-library-stdbool-h

반응형