Bird
Raised Fist0
Goprogramming~15 mins

Basic input concepts in Go - Mini Project: Build & Apply

Choose your learning style10 modes available
Basic Input Concepts in Go
📖 Scenario: You are creating a simple Go program that asks a user for their name and age, then greets them with this information.
🎯 Goal: Build a Go program that reads user input for name and age, then prints a greeting message including both.
📋 What You'll Learn
Use fmt.Scanln to read user input
Store the name in a variable called name
Store the age in a variable called age
Print the greeting using fmt.Printf with the exact format
💡 Why This Matters
🌍 Real World
Reading user input is essential for interactive command-line tools and simple programs that need user data.
💼 Career
Understanding basic input/output in Go is important for backend development, scripting, and building CLI applications.
Progress0 / 4 steps
1
Create variables for user input
Declare a variable called name of type string and a variable called age of type int.
Go
Hint

Use var keyword to declare variables with their types.

2
Read user input for name and age
Use fmt.Scanln to read input from the user into the variables name and age.
Go
Hint

Use fmt.Scanln(&variable) to read input into variables.

3
Create greeting message
Use fmt.Printf to print the message: Hello, [name]! You are [age] years old. replacing [name] and [age] with the variables name and age.
Go
Hint

Use %s for strings and %d for integers in fmt.Printf.

4
Run the program and see the output
Run the program and enter John for the name and 30 for the age. The program should print: Hello, John! You are 30 years old.
Go
Hint

Make sure to enter the exact inputs when running the program.

Practice

(1/5)
1. What is the main purpose of using input functions in Go programs?
easy
A. To get information from the user during program execution
B. To print messages on the screen
C. To declare variables
D. To create new functions

Solution

  1. Step 1: Understand input function role

    Input functions allow the program to receive data from the user while it runs.
  2. Step 2: Differentiate input from output

    Printing messages is output, not input. Declaring variables or creating functions are unrelated.
  3. Final Answer:

    To get information from the user during program execution -> Option A
  4. Quick Check:

    Input = get user data [OK]
Hint: Input means getting data from user, not showing it [OK]
Common Mistakes:
  • Confusing input with output (printing)
  • Thinking input declares variables
  • Mixing input with function creation
2. Which of the following is the correct way to read a single word input from the user in Go?
easy
A. fmt.Println(variable)
B. fmt.Scanln(&variable)
C. bufio.NewReader(os.Stdin).ReadString()
D. var input string

Solution

  1. Step 1: Identify input reading functions

    fmt.Scanln reads a single word or token from user input into a variable.
  2. Step 2: Eliminate other options

    fmt.Println prints output, bufio.NewReader reads full lines, and declaring a variable alone doesn't read input.
  3. Final Answer:

    fmt.Scanln(&variable) -> Option B
  4. Quick Check:

    Single word input uses fmt.Scanln [OK]
Hint: Use fmt.Scanln for simple word input [OK]
Common Mistakes:
  • Using fmt.Println to read input
  • Confusing bufio.NewReader with Scanln for single words
  • Forgetting to pass variable address with &
3. What will be the output of this Go code snippet?
var name string
fmt.Print("Enter name: ")
fmt.Scanln(&name)
fmt.Println("Hello,", name)
If the user types: John and presses Enter.
medium
A. Hello,
B. Error: missing input
C. Enter name: John
D. Hello, John

Solution

  1. Step 1: Understand input reading

    fmt.Scanln reads the word 'John' into variable name.
  2. Step 2: Understand output printing

    fmt.Println prints "Hello," followed by the value of name, which is "John".
  3. Final Answer:

    Hello, John -> Option D
  4. Quick Check:

    Input 'John' prints 'Hello, John' [OK]
Hint: Scanln reads input; println shows it back [OK]
Common Mistakes:
  • Expecting input prompt to print again
  • Thinking Scanln reads empty string
  • Confusing output with input prompt
4. What is wrong with this Go code for reading a full line input?
var input string
reader := bufio.NewReader(os.Stdin)
input, _ = reader.ReadString('\n')
fmt.Println(input)
medium
A. It does not import the bufio and os packages
B. ReadString does not read until newline
C. input variable is declared twice causing error
D. fmt.Println cannot print strings

Solution

  1. Step 1: Check package imports

    bufio and os packages must be imported to use bufio.NewReader and os.Stdin.
  2. Step 2: Verify variable declaration

    input is declared once and assigned, which is correct. ReadString reads until newline correctly. fmt.Println can print strings.
  3. Final Answer:

    It does not import the bufio and os packages -> Option A
  4. Quick Check:

    Missing imports cause errors [OK]
Hint: Always import bufio and os for buffered input [OK]
Common Mistakes:
  • Forgetting to import required packages
  • Redeclaring variables with := after declaration
  • Assuming ReadString reads partial input
5. You want to read a user's full name including spaces in Go. Which approach correctly reads and cleans the input to remove the trailing newline?
hard
A. Use fmt.Println to read input
B. Use fmt.Scanln(&name) only
C. Use bufio.NewReader(os.Stdin).ReadString('\n') and strings.TrimSpace()
D. Use fmt.Scanf("%s", &name)

Solution

  1. Step 1: Identify method for full line input

    bufio.NewReader with ReadString('\n') reads the entire line including spaces.
  2. Step 2: Remove trailing newline

    strings.TrimSpace removes extra spaces and newline characters from input.
  3. Final Answer:

    Use bufio.NewReader(os.Stdin).ReadString('\n') and strings.TrimSpace() -> Option C
  4. Quick Check:

    Full line input + trim newline = Use bufio.NewReader(os.Stdin).ReadString('\n') and strings.TrimSpace() [OK]
Hint: Use bufio + TrimSpace for full line input [OK]
Common Mistakes:
  • Using Scanln which stops at space
  • Using Scanf with %s reads only one word
  • Trying to read input with Println
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard