한 줄에 bool 배열에 올바른 방식으로 데이터를 입력 할 수 있습니까? 예를 들어bool 배열에 한 줄에 데이터 입력
#include <iostream>
using namespace std;
int main() {
unsigned short a;
cin >> a;
bool *b = new bool[a];
for(int i = 0; i < a; ++i)
cin >> b[i];
for(int i = 0; i < a; ++i)
cout << b[i];
delete [] b;
return 0;
}
:
올바른 입력 :
5
1
0
1
0
1
올바른 출력 :하지만이 방법으로 원하는
10101
:
이 같은 뭔가를입력 :
5
10101
출력 :
10101
감사합니다. 작동하지만 c-'0 '을 의미하는 것은 무엇입니까? –
char는 사실 8 (대부분의 아키텍처에서) 보유하는 문자의 ASCII 값에 해당하는 값의 비트 정수입니다. 연산은 문자 c의 ASCII 값에서 문자 '0'(48)의 ASCII 값을 빼기 때문에 '0'은 0이되고 '1'은 1이됩니다. 그러면 정수 0이 거짓이고 1이 같기 때문에 bool로 형변환 될 수 있습니다 참된. – nowaqq
이것은 좋은 트릭입니다, 다시 한번 감사드립니다 :) –