1. fmt.Scan
- 입력 구분자: 공백 문자(스페이스, 탭, 개행 모두)
- 입력 종료: 변수 개수만큼 입력받으면 종료
- 버퍼 내 개행 문자 처리
중간 개행(줄바꿈)은 구분자 역할로 자동 버려짐
마지막 개행 문자는 버퍼에 남아있음
n, err := fmt.Scan(&a, &b)
입력:
3 5<Enter>
- 마지막 <Enter>는 입력 버퍼에 남아있음
입력
3<Enter>
5<Enter>
- 중간 <Enter>는 버려지고, 마지막 <Enter>는 버퍼에 남음
2. fmt.Scanf
- 입력 구분자: 형식 문자열에 따라 정확히 매칭
- 입력 종료: 형식 문자열에 맞게 입력이 완료되어야 종료
- 버퍼 내 개행 문자 처리:
형식에 맞는 개행문자 \n 는 버퍼에서 제거(버려짐)
예를들어 "%d %d\n" 에서 마지막 \n은 입력 버퍼에서 소비됨
n, err := fmt.Scanf("%d %d\n", &a, &b)
입력:
3 5<Enter>
- <Enter>는 버퍼에서 버려짐
3. fmt.Scanln
- 입력 구분자: 공백 문자(스페이스, 탭)
- 입력 종료: 개행 문자(중바꿈)을 만나면 입력 종료
- 버퍼 내 개행 문자 처리:
입력 종료 시 개행 문자는 버퍼에서 제거(버려짐)
n, err := fmt.Scanln(&a, &b)
입력:
3 5<Enter>
- <Enter>는 버퍼에서 버려짐
'Go' 카테고리의 다른 글
append 함수 (0) | 2025.06.08 |
---|---|
Go의 구조체 (0) | 2025.06.08 |
Hello Go World 코드 (0) | 2025.06.03 |