
In the Go programming language, input and output (I/O) operations are performed using the fmt, bufio, and os packages.
Go provides multiple ways to display output using the fmt package.
fmt.Print(), fmt.Println(), and fmt.Printf()| Function | Description |
|---|---|
fmt.Print() | Prints text without a newline |
fmt.Println() | Prints text and adds a newline (\n) at the end |
fmt.Printf() | Prints formatted output |
package main
import "fmt"
func main() {
name := "Go"
version := 1.21
fmt.Print("Hello, ")
fmt.Print("World!\n")
fmt.Println("This is Golang")
fmt.Println("Version:", version)
fmt.Printf("Hello %s! Your version is %.2f\n", name, version)
}
đš Output:
Hello, World!
This is Golang
Version: 1.21
Hello Go! Your version is 1.21
Go provides multiple ways to take user input using fmt.Scan(), fmt.Scanln(), fmt.Scanf(), and the bufio package.
fmt.Scan()đ Accepts multiple inputs, separated by spaces.
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("Enter your name and age: ")
fmt.Scan(&name, &age) // Input must be space-separated
fmt.Println("Name:", name)
fmt.Println("Age:", age)
}
đš Input:
John 30
đš Output:
Name: John
Age: 30
fmt.Scanln()đ fmt.Scanln() reads multiple inputs but stops at a newline.
package main
import "fmt"
func main() {
var name string
fmt.Print("Enter your name: ")
fmt.Scanln(&name)
fmt.Println("Welcome,", name)
}
đš Input:
Alice
đš Output:
Welcome, Alice
fmt.Scanf() (Formatted Input)đ fmt.Scanf() allows formatted input.
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("Enter your name and age: ")
fmt.Scanf("%s %d", &name, &age)
fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
đš Input:
Alice 25
đš Output:
Hello Alice, you are 25 years old.
bufio and os for Inputđ bufio.NewReader() is used for reading full-line input, including spaces.
bufio.NewReader()package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter your full name: ")
name, _ := reader.ReadString('\n') // Reads input until a newline
fmt.Println("Welcome,", name)
}
đš Input:
John Doe
đš Output:
Welcome, John Doe
đ This method is better than fmt.Scanln() because it allows reading entire lines with spaces.
đ The os and ioutil packages allow reading and writing files.
os.ReadFile)package main
import (
"fmt"
"os"
)
func main() {
data, err := os.ReadFile("sample.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File Content:")
fmt.Println(string(data))
}
os.WriteFile)package main
import (
"fmt"
"os"
)
func main() {
content := []byte("Hello, this is a test file!")
err := os.WriteFile("output.txt", content, 0644)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File written successfully!")
}
đ Go provides functions for string handling using the strings package.
fmt.Sprintf() for String Formattingpackage main
import (
"fmt"
)
func main() {
name := "Go"
version := 1.21
result := fmt.Sprintf("Language: %s, Version: %.2f", name, version)
fmt.Println(result)
}
đš Output:
Language: Go, Version: 1.21
đ fmt.Sprintf() allows formatted string output without printing it directly.
log Package (Debugging & Logging)đ log package is useful for debugging and logging errors.
log.Println()package main
import (
"log"
)
func main() {
log.Println("This is a log message")
}
đš Output:
2025/02/15 12:34:56 This is a log message
| Function | Description |
|---|---|
fmt.Print() | Prints text in a single line |
fmt.Println() | Prints text and moves to a new line |
fmt.Printf() | Prints formatted output |
fmt.Scan() | Takes input (space-separated) |
fmt.Scanln() | Takes input until a newline |
fmt.Scanf() | Takes formatted input |
bufio.NewReader(os.Stdin) | Reads a full line of input |
os.ReadFile() | Reads data from a file |
os.WriteFile() | Writes data to a file |
fmt.Sprintf() | Formats a string without printing |
Go (Golang) āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻžāϝāĻŧ āĻāύāĻĒā§āĻ āĻ āĻāĻāĻāĻĒā§āĻ (I/O) āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠fmt, bufio, āĻāĻŦāĻ os āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
đ Go-āϤ⧠āĻāĻāĻāĻĒā§āĻ āĻĒā§āϰāĻĻāĻžāύā§āϰ āĻāύā§āϝ āĻŽā§āϞāϤ fmt āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
fmt.Print(), fmt.Println(), āĻāĻŦāĻ fmt.Printf()| āĻĢāĻžāĻāĻļāύ | āĻŦā§āĻļāĻŋāώā§āĻā§āϝ |
|---|---|
fmt.Print() | āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§ āĻā§āĻā§āϏāĻ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰā§, āĻā§āύ⧠āύāϤā§āύ āϞāĻžāĻāύ āĻĻā§āϝāĻŧ āύāĻž |
fmt.Println() | āĻā§āĻā§āϏāĻ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻļā§āώ⧠āύāϤā§āύ āϞāĻžāĻāύ (\n) āϝā§āĻā§āϤ āĻāϰ⧠|
fmt.Printf() | āĻĢāϰāĻŽā§āϝāĻžāĻā§āĻĄ āĻāĻāĻāĻĒā§āĻ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰ⧠|
package main
import "fmt"
func main() {
name := "Go"
version := 1.21
fmt.Print("Hello, ")
fmt.Print("World!\n")
fmt.Println("This is Golang")
fmt.Println("Version:", version)
fmt.Printf("Hello %s! Your version is %.2f\n", name, version)
}
đš āĻāĻāĻāĻĒā§āĻ:
Hello, World!
This is Golang
Version: 1.21
Hello Go! Your version is 1.21
đ Go-āϤ⧠āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ fmt.Scan(), fmt.Scanln(), fmt.Scanf(), āĻāĻŦāĻ bufio āĻ os āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
fmt.Scan()đ āĻāĻāĻžāϧāĻŋāĻ āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ, āϤāĻŦā§ āϏā§āĻĒā§āϏ āĻĻāĻŋāϝāĻŧā§ āĻĒā§āĻĨāĻ āĻāϰāϤ⧠āĻšāϝāĻŧāĨ¤
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("Enter your name and age: ")
fmt.Scan(&name, &age) // āϏā§āĻĒā§āϏ āĻĻāĻŋāϝāĻŧā§ āĻāύāĻĒā§āĻ āĻĻāĻŋāϤ⧠āĻšāĻŦā§
fmt.Println("Name:", name)
fmt.Println("Age:", age)
}
đš āĻāύāĻĒā§āĻ:
John 30
đš āĻāĻāĻāĻĒā§āĻ:
Name: John
Age: 30
fmt.Scanln()đ fmt.Scanln() āĻāĻāĻžāϧāĻŋāĻ āĻāύāĻĒā§āĻ āύā§āϝāĻŧ āĻāĻŋāύā§āϤ⧠āύāϤā§āύ āϞāĻžāĻāύ āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧā§āĨ¤
package main
import "fmt"
func main() {
var name string
fmt.Print("Enter your name: ")
fmt.Scanln(&name)
fmt.Println("Welcome,", name)
}
đš āĻāύāĻĒā§āĻ:
Alice
đš āĻāĻāĻāĻĒā§āĻ:
Welcome, Alice
fmt.Scanf() (āĻĢāϰāĻŽā§āϝāĻžāĻā§āĻĄ āĻāύāĻĒā§āĻ)đ fmt.Scanf() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻž āϝāĻžāϝāĻŧāĨ¤
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("Enter your name and age: ")
fmt.Scanf("%s %d", &name, &age)
fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
đš āĻāύāĻĒā§āĻ:
Alice 25
đš āĻāĻāĻāĻĒā§āĻ:
Hello Alice, you are 25 years old.
bufio āĻāĻŦāĻ os āĻĒā§āϝāĻžāĻā§āĻ āĻĻāĻŋāϝāĻŧā§ āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻžđ bufio.NewReader() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϞāĻžāĻāύ āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻž āϝāĻžāϝāĻŧāĨ¤
bufio.NewReader() āĻĻāĻŋāϝāĻŧā§ āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻžpackage main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter your full name: ")
name, _ := reader.ReadString('\n') // āύāϤā§āύ āϞāĻžāĻāύ āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧā§
fmt.Println("Welcome,", name)
}
đš āĻāύāĻĒā§āĻ:
John Doe
đš āĻāĻāĻāĻĒā§āĻ:
Welcome, John Doe
đ āĻāĻāĻŋ fmt.Scanln()-āĻāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻĒāϝā§āĻā§ āĻāĻžāϰāĻŖ āĻāĻāĻŋ āϏā§āĻĒā§āϏāϏāĻš āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϞāĻžāĻāύ āĻā§āϰāĻšāĻŖ āĻāϰā§āĨ¤
đ Go-āϤ⧠os āĻ ioutil āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĢāĻžāĻāϞ āĻĨā§āĻā§ āĻĄāĻžāĻāĻž āĻĒāĻĄāĻŧāĻž āĻ āϞā§āĻāĻž āϝāĻžāϝāĻŧāĨ¤
os.ReadFile)package main
import (
"fmt"
"os"
)
func main() {
data, err := os.ReadFile("sample.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File Content:")
fmt.Println(string(data))
}
os.WriteFile)package main
import (
"fmt"
"os"
)
func main() {
content := []byte("Hello, this is a test file!")
err := os.WriteFile("output.txt", content, 0644)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File written successfully!")
}
đ āϏā§āĻā§āϰāĻŋāĻ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ strings āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
fmt.Sprintf() â āϏā§āĻā§āϰāĻŋāĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻpackage main
import (
"fmt"
)
func main() {
name := "Go"
version := 1.21
result := fmt.Sprintf("Language: %s, Version: %.2f", name, version)
fmt.Println(result)
}
đš āĻāĻāĻāĻĒā§āĻ:
Language: Go, Version: 1.21
đ fmt.Sprintf() āϏā§āĻā§āϰāĻŋāĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§, āϝā§āĻāĻžāύ⧠āĻāĻāĻāĻĒā§āĻ āϏāϰāĻžāϏāϰāĻŋ āϏā§āĻā§āϰāĻŋāĻāϝāĻŧā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
log āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ (Debugging & Logging)đ log āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāϰāϰ āϞāĻ āĻ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
log.Println() āĻāĻĻāĻžāĻšāϰāĻŖpackage main
import (
"log"
)
func main() {
log.Println("This is a log message")
}
đš āĻāĻāĻāĻĒā§āĻ:
2025/02/15 12:34:56 This is a log message
| āĻĢāĻžāĻāĻļāύ | āĻŦā§āϝāĻžāĻā§āϝāĻž |
|---|---|
fmt.Print() | āĻāĻ āϞāĻžāĻāύ⧠āĻā§āĻā§āϏāĻ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰ⧠|
fmt.Println() | āύāϤā§āύ āϞāĻžāĻāύ⧠āĻĒā§āϰāĻŋāύā§āĻ āĻāϰ⧠|
fmt.Printf() | āĻĢāϰāĻŽā§āϝāĻžāĻā§āĻĄ āĻāĻāĻāĻĒā§āĻ |
fmt.Scan() | āϏā§āĻĒā§āϏ āĻĻāĻŋāϝāĻŧā§ āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻž |
fmt.Scanln() | āύāϤā§āύ āϞāĻžāĻāύ āĻĒāϰā§āϝāύā§āϤ āĻāύāĻĒā§āĻ |
fmt.Scanf() | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻāύāĻĒā§āĻ |
bufio.NewReader(os.Stdin) | āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϞāĻžāĻāύ āĻāύāĻĒā§āĻ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰ⧠|
os.ReadFile() | āĻĢāĻžāĻāϞ āĻĒāĻĄāĻŧāĻž |
os.WriteFile() | āĻĢāĻžāĻāϞ āϞā§āĻāĻž |
fmt.Sprintf() | āϏā§āĻā§āϰāĻŋāĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ |