Skip to content

Instantly share code, notes, and snippets.

@adilw3nomad
Last active June 22, 2019 18:41
Show Gist options
  • Save adilw3nomad/33db76e8c34e0f48eece97fb6e9015d5 to your computer and use it in GitHub Desktop.
Save adilw3nomad/33db76e8c34e0f48eece97fb6e9015d5 to your computer and use it in GitHub Desktop.
package main
import (
"bufio"
"encoding/csv"
"fmt"
"log"
"os"
)
type quizItem struct {
question string
answer string
}
func main() {
csvFile, err := os.Open("problems.csv")
if err != nil {
log.Fatal(err)
}
defer csvFile.Close()
reader := csv.NewReader(csvFile)
records, err := reader.ReadAll()
if err != nil {
log.Fatal(err)
}
for i := range records {
// Create a quizItem object.
quizItem := quizItem{
question: records[i][0],
answer: records[i][1],
}
// Print out the question.
fmt.Println("Question: ", quizItem.question)
// Create a reader and allow user to input their answer.
inputReader := bufio.NewReader(os.Stdin)
fmt.Print("Enter your answer now: ")
// Expect an answer to be given once they hit return.
text, err := inputReader.ReadString('\n')
if err != nil {
log.Fatal(err)
}
// Compare the answer given by the user to the correct answer
// and print a response accordingly.
if text == quizItem.answer {
fmt.Println("Correct!")
} else {
fmt.Println("WRONG! Answer is: ", quizItem.answer)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment