Go Academy · Pelajaran

Memindai Input

Baca input berformat

Pelajaran 4 dari 413 langkah

Memindai Input adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Membaca Masukan dengan fmt

Paket fmt dapat membaca nilai, bukan hanya mencetaknya. Fungsi pemindaian mengurai teks menjadi variabel bertipe.

Fungsi-fungsi tersebut merupakan kebalikan dari fungsi pencetakan.

package main

import "fmt"

func main() {
    var n int
    fmt.Sscan("42", &n)
    fmt.Println(n + 1)
}

Penunjuk Wajib Digunakan

Fungsi pemindaian harus menyimpan hasil, jadi Anda harus memberikan alamat setiap variabel menggunakan &.

Lupa menambahkan & merupakan kesalahan pemindaian yang paling umum.

package main

import "fmt"

func main() {
    var a, b int
    fmt.Sscan("3 4", &a, &b)
    fmt.Println(a + b)
}

Sscan Memisahkan Berdasarkan Spasi

fmt.Sscan membaca nilai yang dipisahkan spasi dari sebuah teks ke dalam beberapa variabel, dengan menentukan tipe dari setiap penunjuk.

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Sscan("Ada 36", &name, &age)
    fmt.Println(name, age)
}

Sscanf Menggunakan Format

fmt.Sscanf mengurai sesuai teks format, seperti Printf secara terbalik. Karakter harfiah dalam format harus cocok dengan masukan.

package main

import "fmt"

func main() {
    var h, m int
    fmt.Sscanf("09:05", "%d:%d", &h, &m)
    fmt.Println(h, m)
}

Memeriksa Jumlah yang Dibaca

Fungsi pemindaian mengembalikan jumlah item yang berhasil diurai dan sebuah galat. Periksa jumlah tersebut untuk mengetahui apakah penguraian berhasil sepenuhnya.

package main

import "fmt"

func main() {
    var a, b int
    count, _ := fmt.Sscan("7", &a, &b)
    fmt.Println("parsed:", count)
}

Menangani Galat Penguraian

Jika masukan tidak sesuai dengan tipe yang diharapkan, sebuah galat dikembalikan. Selalu periksa galat tersebut untuk masukan nyata.

package main

import "fmt"

func main() {
    var n int
    _, err := fmt.Sscan("notanumber", &n)
    if err != nil {
        fmt.Println("error:", err)
    }
}

Mengurai Tipe Campuran

Anda dapat membaca beberapa tipe yang berbeda dalam satu pemanggilan. Tipe setiap penunjuk menentukan cara tokennya diurai.

package main

import "fmt"

func main() {
    var word string
    var price float64
    var ok bool
    fmt.Sscan("apple 1.50 true", &word, &price, &ok)
    fmt.Println(word, price, ok)
}

Sscanf dengan Teks Harfiah

Sscanf sangat cocok untuk bentuk tetap seperti koordinat atau pasangan kunci-nilai, yang tanda bacanya memisahkan angka.

package main

import "fmt"

func main() {
    var x, y int
    fmt.Sscanf("(3,8)", "(%d,%d)", &x, &y)
    fmt.Println(x, y)
}

Membaca Bilangan Pecahan

Gunakan %f dalam Sscanf atau *float64 dalam Sscan untuk membaca bilangan desimal.

package main

import "fmt"

func main() {
    var temp float64
    fmt.Sscanf("21.5C", "%fC", &temp)
    fmt.Println(temp)
}

Pemindaian vs Masukan Standar

fmt.Scan dan fmt.Scanf membaca dari masukan standar dengan cara yang sama seperti Sscan membaca dari teks. Aturan penguraiannya identik; hanya sumbernya yang berbeda.

package main

import "fmt"

func main() {
    line := "100 200"
    var a, b int
    fmt.Sscan(line, &a, &b)
    fmt.Println(a * b)
}

Pengurai Sederhana

Gabungkan pemindaian dengan perhitungan untuk mengurai sebuah rekaman dan menghasilkan suatu hasil.

package main

import "fmt"

func main() {
    var name string
    var qty int
    var unit float64
    fmt.Sscanf("pen 3 1.25", "%s %d %f", &name, &qty, &unit)
    fmt.Printf("%s total: $%.2f\n", name, float64(qty)*unit)
}

Pemeriksaan Singkat

Apa yang harus Anda berikan kepada fungsi pemindaian untuk menyimpan hasilnya?

Ringkasan: Memindai Masukan

Anda telah mempelajari cara membaca masukan berformat:

  • Sscan memisahkan berdasarkan spasi kosong; Sscanf mengikuti teks format.
  • Berikan penunjuk dengan & untuk setiap tujuan.
  • Periksa jumlah dan galat yang dikembalikan untuk mendeteksi masukan yang tidak valid.
package main

import "fmt"

func main() {
    var d, mo, y int
    fmt.Sscanf("30/05/2026", "%d/%d/%d", &d, &mo, &y)
    fmt.Println(y, mo, d)
}
Gratis untuk memulai

Belajar Go dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memindai Input” gratis?

Ya — teks lengkap “Memindai Input” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memindai Input”?

Baca input berformat Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Memindai Input” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kata Kerja Printf
  2. Sprintf dan Fprintf
  3. Interface Stringer
  4. Memindai Input
← Kembali ke Go Academy