char str1; char str2; char str3;
char* fmt = \"%[^\\n]%*c\";
  scanf (fmt, &str1);
  scanf (fmt, &str2);
  scanf (fmt, &str3);

위의 코드가 왜 동작하는지 잘 이해가 안가서 질문 드립니다
입력 예시
a(엔터)
b(엔터)
c(엔터)
(프로그램 종료)


1. scanf가 stdin에서 a를 읽음 \\n인지 xor연산을 함 ㅇㅋ 아니군
   *를 통해서 stdin에 있는 값을 무시함 근데 이미 stdin에는 아무것도 없다?
   a는 이미 stdin에서 scanf에게 전달해버리고 없음 그러므로 *는 의미없음
   %c 때문에 a는 str에 character 형으로 넣어짐


2. (엔터)가 stdin을 타고 들어옴 \\n인지 xor연산을 함 ㅇㅋ 맞군 -> 무시됨
   *가 stdin에 뭐가 있는지 살펴봤으나 아무것도 없음
   %c는 일을 하고 싶었지만 scanf의 종료조건인 strlen(\"\\n\")에 의해 무시 당하고 사망

위와 같은 동작이 반복


하지만 위의 해석은 이유를 모르겠지만 틀림
fmt의 %*c를 %*d로 정수형으로 받게 고치면 동작을 안함
(물론 변수도 int str1; scanf내의 인자도 &str1로 수정함)


혹시 scanf에 대해 잘 아시는 분 계시면 시원한 답좀