Home
Go
fmt.Sscan, Sscanf Examples
Updated Jan 11, 2024
Dot Net Perls
Sscan, Sscanf. Parsing in values from space-separated strings is a problem that has existed for many years. Even the earliest programmers may have struggled with this problem.
With Sscan and Sscanf, we can parse strings into multiple values. Sscan uses a space as a separator. And Sscanf uses a format string to guide its parsing.
fmt
Sscan example. Here we have a string that has values in it separated by spaces. We pass the correct number of arguments (as references) to fmt.Sscan. They are filled with the parsed values.
Tip We must pass the local variables we want to store the values in as references.
package main import "fmt" func main() { // Store values from Sscan in these locals. value1 := "" value2 := "" value3 := 0 // Scan the 3 strings into 3 local variables. // ... Must pass in the address of the locals. _, err := fmt.Sscan("Bird frog 100", &value1, &value2, &value3); // If the error is nil, we have successfully parsed the values. if err == nil { // Print the values. fmt.Println("VALUE1:", value1); fmt.Println("VALUE2:", value2); fmt.Println("VALUE3:", value3); } }
VALUE1: Bird VALUE2: frog VALUE3: 100
Sscanf. With this method, we must specify a format string to guide the parsing of the values. We can use standard format codes in the format string.
Tip Sscanf works the same way as Sscan except we must pass a format string as the second argument.
package main import "fmt" func main() { value1 := 0 value2 := "" value3 := 0 // Use format string to parse in values. // ... We parse 1 number, 1 string and 1 number. _, err := fmt.Sscanf("10 Bird 5", "%d %s %d", &value1, &value2, &value3); if err == nil { fmt.Println("VALUE1:", value1); fmt.Println("VALUE2:", value2); fmt.Println("VALUE3:", value3); } }
VALUE1: 10 VALUE2: Bird VALUE3: 5
Sscan versus split. With split() or fields() we can separate values and parse them. This has some advantages over Sscan, particularly for oddly-formed strings.
strings.Split
strings.Fields
A review. With fmt.Sscan and Sscanf we have built-in parsing methods for strings that contain multiple values. These methods, when used correctly, can simplify programs.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Jan 11, 2024 (edit).
Home
Changes
© 2007-2025 Sam Allen