Jadual Kandungan
2. Gunakan bufio.Scanner untuk membaca garis mengikut baris (disyorkan)
3. Baca semua input sekaligus (sesuai untuk memproses fail atau potongan besar data)
4. Baca watak tunggal atau input yang tidak buffer
Cadangan penggunaan praktikal
Rumah pembangunan bahagian belakang Golang Membaca dari Stdin dalam Contoh

Membaca dari Stdin dalam Contoh

Jul 27, 2025 am 04:15 AM
java pengaturcaraan

Gunakan fmt.scanf untuk membaca input diformat, sesuai untuk data berstruktur mudah, tetapi rentetan dipotong ketika menghadapi ruang; 2. Adalah disyorkan untuk menggunakan bufio.scanner untuk membaca garis demi baris, menyokong input berbilang baris, pengesanan EOF dan input saluran paip, dan boleh mengendalikan kesilapan pengimbasan; 3. Gunakan io.readall (os.stdin) untuk membaca semua input sekaligus, sesuai untuk memproses potongan besar data atau aliran fail; 4. Sambutan utama masa nyata memerlukan perpustakaan pihak ketiga seperti golang.org/x/term, dan Bufio mencukupi untuk senario konvensional; Cadangan Praktikal: Gunakan fmt.scan untuk input mudah interaktif, gunakan bufio.scanner untuk input baris atau saluran paip, gunakan io.readall untuk ketulan besar data, dan sentiasa mengendalikan kesilapan untuk mengelakkan kegagalan senyap.

Membaca dari Stdin dalam Contoh

Dalam GO, membaca data dari input standard ( stdin ) adalah keperluan biasa, seperti membaca input pengguna atau data saluran paip pemprosesan. Berikut adalah beberapa kaedah biasa dan praktikal yang menggabungkan gaya Go by Example untuk menunjukkan cara membaca kandungan dari stdin .

Membaca dari Stdin dalam Contoh

1. Baca input diformat menggunakan fmt.Scanf

Sesuai untuk membaca input berstruktur, seperti nombor tunggal atau rentetan.

 Pakej utama

Import "FMT"

func main () {
    rentetan nama var
    var umur int
    fmt.print ("Masukkan Nama dan Umur:")
    fmt.scanf (" %s %d", & nama, & umur)
    fmt.printf ("hello %s, anda berumur d Tahun. \ n", nama, umur)
}

⚠️ Nota: Scanf akan berhenti membaca rentetan ketika menghadapi ruang, yang sesuai untuk senario mudah.

Membaca dari Stdin dalam Contoh

2. Gunakan bufio.Scanner untuk membaca garis mengikut baris (disyorkan)

Ini adalah kaedah yang paling biasa digunakan, sesuai untuk membaca pelbagai baris input atau pemprosesan EOF (seperti input saluran paip).

 Pakej utama

import (
    "Bufio"
    "FMT"
    "OS"
)

func main () {
    Pengimbas: = Bufio.NewScanner (OS.Stdin)
    fmt.println ("ENTER TEXT (CTRL D TO END):")

    untuk scanner.scan () {
        Talian: = scanner.text ()
        jika garis == "keluar" {
            rehat
        }
        fmt.printf ("Anda masuk: %s \ n", baris)
    }

    jika err: = scanner.err (); err! = nil {
        fmt.fprintln (os.stderr, "Membaca input standard:", err)
    }
}

✅ Kelebihan:

Membaca dari Stdin dalam Contoh
  • Menyokong bacaan mengikut baris
  • Sesuai dengan input terminal dan saluran paip (seperti echo "hello" | go run main.go )
  • EOF yang dapat dikesan (Ctrl D pada UNIX, Ctrl Z pada Windows)

3. Baca semua input sekaligus (sesuai untuk memproses fail atau potongan besar data)

Baca keseluruhan kandungan stdin menggunakan io.ReadAll .

 Pakej utama

import (
    "FMT"
    "io"
    "OS"
)

func main () {
    fmt.println ("Kandungan tampal (ctrl d hingga selesai):")
    data, err: = io.readall (os.stdin)
    jika err! = nil {
        fmt.fprintln (os.stderr, "Input membaca ralat:", err)
        Kembali
    }

    fmt.printf ("baca %d bytes: \ n %s", len (data), data)
}

? Senario yang terpakai:

  • Proses input lengkap JSON, fail konfigurasi, dll.
  • Gunakan dengan saluran paip, seperti cat data.txt | go run main.go

4. Baca watak tunggal atau input yang tidak buffer

Jika anda perlu bertindak balas terhadap kunci dalam masa nyata (seperti permainan atau alat interaktif), anda boleh menggunakan panggilan peringkat sistem, tetapi perpustakaan standard tidak menyokongnya secara langsung. Anda boleh menggunakan perpustakaan pihak ketiga seperti golang.org/x/term .

Walau bagaimanapun, untuk bacaan stdin biasa, bufio mencukupi.


Cadangan penggunaan praktikal

  • Input interaktif : Gunakan fmt.Scan atau fmt.Scanf untuk mendapatkan nilai mudah dengan cepat.
  • Input garis atau pemprosesan saluran paip : Gunakan bufio.Scanner terlebih dahulu.
  • Potongan besar data atau aliran fail : Gunakan io.ReadAll(os.Stdin) .
  • Ingatlah untuk berurusan dengan scanner.Err() dan error untuk mengelakkan kegagalan senyap.

Pada dasarnya cara biasa ini. Perpustakaan standard Go adalah mudah dan cekap, dan dengan mudah boleh mengendalikan kebanyakan senario input dengan os.Stdin .

Atas ialah kandungan terperinci Membaca dari Stdin dalam Contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1535
276
Cari Excel dan ganti tidak berfungsi Cari Excel dan ganti tidak berfungsi Aug 13, 2025 pm 04:49 PM

ChecksearchSettingslike "MatchentireCellContents" dan "MatchCase" byExpandingOptionsInfindandReplace, memastikan "lookin" issettovaluesand "dalam" tocorrectscope; 2.lookforhiddencharactersorformattingbycopytextdirectly

Cara Menggunakan Aplikasi Java Cara Menggunakan Aplikasi Java Aug 17, 2025 am 12:56 AM

PreparyourapplicationByusingMavenorgradletobuildajarorwarfile, externalizingConfiguration.2.Chooseadeploymentenvironment: runonbaremetal/vmwithjava-jarandsystemd, deploywarontomcat, containerizeWithdoStloStLoThoStLoThoStLoThoStLoThoStLoUsToStLoUsToStLoUsToStLours.

Bagaimana cara mengkonfigurasi pembalakan dalam aplikasi Java? Bagaimana cara mengkonfigurasi pembalakan dalam aplikasi Java? Aug 15, 2025 am 11:50 AM

Menggunakan SLF4J yang digabungkan dengan Logback atau Log4J2 adalah cara yang disyorkan untuk mengkonfigurasi log dalam aplikasi Java. Ia memperkenalkan API dan perpustakaan pelaksanaan dengan menambahkan kebergantungan Maven yang sepadan; 2. Dapatkan logger melalui loggerfactory SLF4J dalam kod, dan tulis kod log yang dihancurkan dan cekap menggunakan kaedah pembalakan parameter; 3. Tentukan Format Output Log, Tahap, Sasaran (Konsol, Fail) dan Kawalan Log Tahap Pakej melalui fail konfigurasi logback.xml atau log4j2.xml; 4. Secara pilihan membolehkan fungsi pengimbasan fail konfigurasi untuk mencapai pelarasan dinamik tahap log, dan springboot juga boleh diuruskan melalui titik akhir penggerak; 5. Ikuti amalan terbaik, termasuk

Data XML mengikat dengan Castor di Java Data XML mengikat dengan Castor di Java Aug 15, 2025 am 03:43 AM

Castorenablesxml-to-javaobjectmappingviadefaultconventionsorexplicitmappingfiles; 1) definejavaclasswithgetters/setters; 2) useunmarshallertoconvertxmltoobjects;

js tambah elemen untuk memulakan array js tambah elemen untuk memulakan array Aug 14, 2025 am 11:51 AM

Dalam JavaScript, kaedah yang paling biasa untuk menambah unsur -unsur ke permulaan array adalah dengan menggunakan kaedah unshift (); 1. Menggunakan UNSHIFT () akan secara langsung mengubah suai array asal, anda boleh menambah satu atau lebih elemen untuk mengembalikan panjang baru array tambahan; 2. Jika anda tidak mahu mengubah suai array asal, disyorkan untuk menggunakan pengendali lanjutan (seperti [NewElement, ... ARR]) untuk membuat array baru; 3. Anda juga boleh menggunakan kaedah Concat () untuk menggabungkan array elemen baru dengan nombor asal, mengembalikan array baru tanpa menukar array asal; Ringkasnya, gunakan unshift () apabila mengubah suai array asal, dan mengesyorkan pengendali lanjutan apabila mengekalkan array asal tidak berubah.

Perbandingan Prestasi: Java vs Go untuk Perkhidmatan Backend Perbandingan Prestasi: Java vs Go untuk Perkhidmatan Backend Aug 14, 2025 pm 03:32 PM

GotypicallyoffersbetterruntimeperformanceWithhightherthroughputandlowerlatency, terutama sekali-sekala/o-heavyservices, duetoitslightweightgoroutinesandeficientscheduler, whentjava, wifklowertostart, canmatchgoincpu-boundsafterjitoptimization.2.

Cara bekerja dengan json di java Cara bekerja dengan json di java Aug 14, 2025 pm 03:40 PM

TOWORKWITHJSONINJAVA, USEATHIRD-PARTYLIBRARYLIKEJACKSON, GSON, ORJSON-B, ASJAVALACKSBUILT-Insupport;

Apakah kata kunci menegaskan di Java? Apakah kata kunci menegaskan di Java? Aug 17, 2025 am 12:52 AM

TheassertkeywordinJavaisusedtovalidateassumptionsduringdevelopment,throwinganAssertionErroriftheconditionisfalse.2.Ithastwoforms:assertcondition;andassertcondition:message;withthelatterprovidingacustomerrormessage.3.Assertionsaredisabledbydefaultandm

See all articles