fmt.Scanln 오류: 새 줄이 필요함
Go에서 fmt.Scanln 기능을 사용할 때 "예상 줄 바꿈" 오류가 발생할 수 있습니다. . 이는 입력에서 예상 구분 기호(일반적으로 공백) 앞에 개행 문자가 포함된 경우 발생합니다. 이 문제를 해결하기 위해 fmt.Scan 및 fmt.Scanln의 동작을 자세히 살펴보겠습니다.
fmt.Scan은 표준 입력에서 공백으로 구분된 값을 읽고 줄 바꿈을 공백으로 처리합니다. 이 값을 해당 인수에 할당하여 성공적으로 스캔한 항목의 수를 반환합니다.
fmt.Scanln은 유사하게 동작하지만 개행에서 스캔을 중지합니다. 중요한 점은 성공적으로 완료하려면 입력이 줄바꿈 또는 EOF로 끝나야 한다는 것입니다.
이를 설명하려면 다음 입력을 고려하세요.
123 123.456 everybody loves ice cream
fmt.Scan을 사용할 때 출력은 다음과 같습니다. :
read 1 integer: 123 read 1 float64: 123.456 read 1 string: everybody Error: Scan: expected newline
fmt.Scan은 "everybody love ice cream"을 두 개의 문자열로 해석하여 오류가 발생합니다.
그러나 동일한 입력에 fmt.Scanln을 사용하면 출력이
read 1 integer: 123 read 1 float64: 123.456 read 1 string: everybody loves ice cream
fmt.Scanln은 개행 문자를 구분 기호로 인식하고 전체 행을 단일 문자열 인수로 올바르게 구문 분석합니다.
개행 문자로 끝나는 행을 읽으려면 자, bufio.Reader와 ReadString 메소드를 사용할 수 있습니다:
line, err := buffer.ReadString('\n')
위 내용은 Go\의 fmt.Scanln이 \'예상된 줄바꿈\' 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!