Why Does Go\'s fmt.Scanln Give an \'Expected Newline\' Error?

DDD
Release: 2024-10-24 04:27:31
Original
253 people have browsed it

Why Does Go's fmt.Scanln Give an

fmt.Scanln Error: Expected Newline

When utilizing the fmt.Scanln function in Go, you may encounter an "expected newline" error. This occurs when input contains a newline character before the expected delimiter (usually a space). To address this, let's delve into the behavior of fmt.Scan and fmt.Scanln.

fmt.Scan reads space-separated values from standard input, treating newlines as spaces. It assigns these values to the corresponding arguments, returning the count of successfully scanned items.

fmt.Scanln behaves similarly but stops scanning at a newline. Critically, the input must end with a newline or an EOF to complete successfully.

To illustrate this, consider the following input:

123
123.456
everybody loves ice cream
Copy after login

When using fmt.Scan, the output will be:

read 1 integer:  123
read 1 float64:  123.456
read 1 string:  everybody
Error:  Scan: expected newline
Copy after login

fmt.Scan interprets "everybody loves ice cream" as two strings, resulting in the error.

However, if you use fmt.Scanln for the same input, the output will be:

read 1 integer:  123
read 1 float64:  123.456
read 1 string:  everybody loves ice cream
Copy after login

fmt.Scanln recognizes the newline as the delimiter and correctly parses the entire line as a single string argument.

To read a line that ends with a newline character in Go, you can use bufio.Reader and its ReadString method:

line, err := buffer.ReadString('\n')
Copy after login

The above is the detailed content of Why Does Go\'s fmt.Scanln Give an \'Expected Newline\' Error?. For more information, please follow other related articles on the PHP Chinese website!

source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!