Handling stdin in Go: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 14: Line 14:
==<tt>fmt.Scanln()</tt>==
==<tt>fmt.Scanln()</tt>==
{{External|https://golang.org/pkg/fmt/#Scanln}}
{{External|https://golang.org/pkg/fmt/#Scanln}}
 
Scanln is similar to Scan, but stops scanning at a newline and after the final item there must be a newline or EOF.
<pre>
<syntaxhighlight lang='go'>
var line string
var line string
fmt.Scanln(&line)
fmt.Scanln(&line)
</pre>
</syntaxhighlight>


==<tt>fmt.Scanf()</tt>==
==<tt>fmt.Scanf()</tt>==

Revision as of 01:59, 23 August 2023

Internal

Handling stdin with fmt Functions

fmt.Scan()

https://golang.org/pkg/fmt/#Scan

Read text from stdin, storing successive space-separated values into successive arguments. Newlines count as space. It returns the number of items successfully scanned. If that is less than the number of arguments, err will report why.

var s string
cnt, err := fmt.Scan(&s)
fmt.Printf("input line: %s, cnt: %d, error: %s\n", s, cnt, err)

fmt.Scanln()

https://golang.org/pkg/fmt/#Scanln

Scanln is similar to Scan, but stops scanning at a newline and after the final item there must be a newline or EOF.

var line string
fmt.Scanln(&line)

fmt.Scanf()

https://golang.org/pkg/fmt/#Scanf
var f float
cnt, err := fmt.Scanf("%f", &f)