В чем разница между Sprintf, Printf, Fprint?
sprintf: s - строка, print - печать, f - форматированный режим; форматированная печать в строку.
fprintf: f - файл; форматированная печать в файл.
printf: форматированная печать в стандартное расположение, обычно в консоль.
Функционально:

Вернет строку новую строку. Удобно для создания своих строковых представлений для данных других типов. 
var age = 20
NewAge := fmt.Sprintf("New %v", age)     // "New 20"

Используется для отправки данных в "ридер" - в примере происходит отправка в терминал значения переменной age. Print("123") - это обвертка над Fprint(os.Stdout, "123")
var age = 20
err := fmt.Fprintf(os.Stdout, age)      // "20"

Выводит в терминал форматированную строку. Правила форматирования тут
var age = 20
fmt.Printf("New %v\n", age)    // "New 20". Не забывайте ставить символ '\n' - перехода на новую строку.

Сохраняет введеное строковое значение в переменную
var name string
Scan(&name)

При вводе "My name is ThiefPytin"
Сохранит в переменную name только часть строки подходящей под формат (ThiefPytin)
var name string
Scanf("My name is %s", &name)