What is the Golang function Fprintf?

The Fprintf function in the Go programming language is used to print out a formatted string to the destination of your choosing.

Fprintf is different from the normal Fprint function, as it supports custom format specifiers and uses a format string to generate the final output string. In contrast, in Fprint, only default formats are used to format the string.

In order to use this function, you must import the fmt package in your file and access the Fprintf function within by using the . notation: fmt.Fprintf. Here, Fprintf is the actual function, while fmt is the Go package that stores the definition of this function.

Function definition

The definition of the Fprintf function inside the fmt package is as follows:

  • dest: The destination where the formatted string is to be printed. This should be an object of type io.Writer.

io.Write objects are, in simple terms, objects that have a built-in write method.

  • format: This argument is of type string and represents the string containing custom specifiers that the Fprintf uses to format the final output string.

  • a ...interface{}:The list of all arguments that need to be formatted and printed.

Return values

The fmt.Fprintf function can return two things:

  • count: The number of bytes that were written to the standard output.

  • err: Any error thrown during the execution of the function.

Common specifiers

The following is a table of the most commonly used format specifiers in Go and their descriptions.

Specifiers Description
%s To print a string
%d To print an integer
%v To print values of all elements in a structure
%+v To print the names and values of all elements in a structure

Example

In the following example, we print out a single string along with an integer value, in the form of a formatted string. First, we print a buffer variable of type bytes.Buffer, and then use the normal Print function to write the buffer to the standard output.

package main
import (
"fmt"
"bytes"
)
func main() {
// declaring variables of different datatypes
var message string = "Hello and welcome to "
var year int = 2021
// temporary buffer
var temp_buff bytes.Buffer
// printing out the declared variables as a single string
fmt.Fprintf(&temp_buff, "%s educative in %d", message, year)
fmt.Print(&temp_buff)
}

Now, in this second example, we print out a single formatted string along with an integer value directly to the standard output. Here, we also use the return values to print out relevant data for the Fprintf function used.

The standard input/output is defined in the os package, so you need to include that in your file first.

package main
import (
"fmt"
"os"
)
func main() {
// declaring variables of different datatypes
var message string = "Hello and welcome to"
var year int = 2021
// storing the return values of fprint
char_count, error := fmt.Fprintf(os.Stdout, "%s educative in %d\n", message, year)
if error == nil {
fmt.Print("Fprintf executed without errors and wrote ",char_count, " characters")
}
}

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved