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() | āϏā§āĻā§āϰāĻŋāĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ |