-2
다음 프로그램은 컴파일되지 않습니다.cin이 typecaset과 함께 작동하지 않습니다.
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char c;
cin >> (int)c; // stat 1
//scanf("%d", &c); //stat 2; this when complied gives warning
cout << c << endl;
}
cin
을 사용하여 문자의 ASCII 값을 받아들이는 방법. 나는 char 변수를 사용하여 그것을하고 싶다.
2. 사용자가 입력 한 값이 문자 범위에 속하는 경우, stat 2항상이 원하는 결과를 생성합니다.
감사합니다. @ Joachim-Pileborg. 하지만 내 질문은'cin '과 함께 타입 변환 (int)을 사용하고있다. 당신이 제공 한 설명은 문제를 해결하지만'cin '을 이용한 타입 캐스팅에 대해 알고 싶습니다. –
@DeepakAggarwal'(int) c'는 임시로 생성 되었기 때문에 작동하지 않습니다. '(int) c'는 c를 int *로 취급하지 않습니다. * c *의 값을 가지는 int를 작성합니다. – NathanOliver
@DeepakAggarwal 더 정확하게 말하면, 입력 연산자 함수는 비 const 참조 인수를 취하며'(int) c'는 비 const 참조에 바인딩 할 수없는 rvalue를 만듭니다. –