scanf 오류 문제!!
꼬꼬마
2023.04.01
질문 제목 : 질문 내용 :
이 코드에서요
scanf 함수에서 %d말고 %hhd 같은걸로 수정해줘야 하는건 아는데요
문제는 그게 아니고 저걸 컴파일해보면 char랑 %d랑 어쩌고 저쩌고 나오고
실행한뒤 숫자 3을 입력하면
1 1 1 1 1 3 1 1 이게 안나오고
0 0 0 1 1 3 1 1 이렇게 나오는지 그 이유를 알아야해요ㅠㅠ 좀 자세하게요ㅠㅠ
왜 앞에 000 이 나오는지 그런거요ㅠㅠ...
-
한말글
f를 character로 선언했습니다. 그러니까 f는 메모리상에서 1byte를 차지하게됩니다.
그런데 scanf(%d, &f); 를 하게되면 scanf는 &f를 decimal integer pointer로 인식하게됩니다.
그러니까 scanf에서 입력을 받아서 integer로 저장하게되겠죠.
그래서 f 앞의 3 바이트가 망가지게 되겠네요.
%c로 하거나 앞에 분 말대로 integer로 선언하세요. -
연분홍
char형을 int형으로 바꾸면 문제 없을거 같은데요