---
id: cpp-booleans
title: "C++ Booleans"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["bool type", "boolalpha manipulator", "C++ 불리언"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.86
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["cpp", "programming-language", "w3schools", "booleans", "boolalpha"]
raw_sources: ["https://www.w3schools.com/cpp/cpp_booleans.asp"]
applied_in: []
github_commit: ""
---

# [[CPP Booleans]]

## 🎯 한 줄 통찰 (One-line insight)
`boolalpha` is explicitly NOT a data type — it's an I/O stream manipulator, a persistent SETTING that changes how `cout` displays every subsequent boolean until `noboolalpha` resets it — meaning printing `true`/`false` as words versus `1`/`0` isn't a per-call choice like a format specifier, but a stateful mode switch that affects ALL following boolean output on that stream. [S1]

## 🧠 핵심 개념 (Core concepts)
- **`bool`** — native C++ type; `true` (1) or `false` (0). [S1]
- **Default printing shows 1/0** — `cout << boolVar;` prints the integer representation by default. [S1]
- **`boolalpha`** — an I/O manipulator (not a type) that switches `cout` to print `true`/`false` as WORDS instead of `1`/`0`; the setting persists for all subsequent output until reset. [S1]
- **`noboolalpha`** — resets `cout` back to the default `1`/`0` printing behavior. [S1]
- **Both styles are valid** — the choice between `1`/`0` and `true`/`false` display is purely stylistic. [S1]

## 📖 세부 내용 (Details)
- Default 1/0 printing: `bool isCodingFun = true; cout << isCodingFun; // 1`. [S1]
- Switching to word display: `cout << boolalpha; cout << isCodingFun; // true`. [S1]
- Resetting back to numeric display: `cout << noboolalpha; cout << isCodingFun; // 1`. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- **boolalpha는 타입이 아니라 상태를 바꾸는 매니퓰레이터**: 한 번 켜면 이후의 모든 불리언 출력에 지속적으로 영향을 미치는 설정이라는 점이 명시적으로 확인됨 — noboolalpha로 초기화하기 전까지 유지됨. [S1]

## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — boolalpha/noboolalpha를 오가며 출력 스타일을 전환하는 것이 디버깅 출력의 가독성을 높이는 실전 활용이다. [S1]

## 💻 코드 패턴 (Code patterns)
Switching cout's boolean display mode with boolalpha, then resetting it (C++):
```cpp
bool isCodingFun = true;
cout << boolalpha;      // enable printing "true"/"false"
cout << isCodingFun;    // Outputs true
cout << noboolalpha;    // reset to 1/0
cout << isCodingFun;    // Outputs 1
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.86
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[C++ Tutorial]]
- **관련 개념:** [[CPP Math]], [[CPP Booleans Expressions]], [[C Booleans]]
- **참조 맥락:** 불리언 섹션 첫 챕터 — 불리언 표현식(Booleans Expressions) 챕터로 이어짐.

## 📚 출처 (Sources)
- [S1] W3Schools — C++ Booleans — https://www.w3schools.com/cpp/cpp_booleans.asp

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "C++ Booleans" page (Astra wiki-curation, P-Reinforce v3.1 format).
