pppp1923   4년 전

scanf를 사용하면 틀렷다고나오고

cin을 사용하면 맞았다고 나오는데


문제의 입력에 RRRBB는 띄어쓰기가 없으니깐 scanf로 단어 하나씩 입력받아야 하는거 아닌가요??

djm03178   4년 전

%c는 공백이나 개행 등의 화이트스페이스도 전부 하나의 문자로 취급합니다.

pppp1923   4년 전

cin은 스페이스가 있을 때까지 입력되는게 맞지않나요??

이 경우에는 int가 아닌 char형 이차원 배열을 사용했기 때문에 

B, B, B, R, R 이라고 배열의 한 공간에 그대로 입력이 되는건가요??

djm03178   4년 전

cin >> char는 화이트스페이스가 아닌 문자가 나올 때까지 화이트스페이스를 무시하고 그 외의 문자를 한 개 입력받습니다.

scanf("%c")는 화이트스페이스도 전부 동등하게 취급합니다. 따라서, 예제 입력의 경우 첫 줄에 5가 위에 cin >> n; 에서 읽인 후, 개행 문자가 다음 문자인 상태에서 처음으로 scanf가 실행되어 그 개행 문자 '\n'이 a[0][0]에 들어가게 되고, a[0][1]='R', a[0][2]='R', a[0][3]='R', a[0][4]='B', 그 다음 바깥쪽 루프가 돌아 a[1][0]='B', a[1][1]='\n'과 같이 진행됩니다.

댓글을 작성하려면 로그인해야 합니다.