Rumah > pembangunan bahagian belakang > Golang > mengambil input dengan ruang dalam pergi

mengambil input dengan ruang dalam pergi

Susan Sarandon
Lepaskan: 2024-12-06 19:26:12
asal
811 orang telah melayarinya

taking input with spaces in go

Konteks

Saya sedang menulis atur cara kalkulator yang meminta pengguna untuk ungkapan input dan mencetak hasilnya serta menggesa sekali lagi untuk ungkapan seterusnya.

Masalah

Tetapi, apabila saya menggunakan fmt.Scanln() untuk membaca baris(dengan aksara ruang seperti ruang dan tab), perkara itu berlaku!

Ia berhenti membaca apabila ia menemui aksara angkasa(yep! bukan baris baharu tetapi aksara angkasa).

Contohnya:
Input: 2 3.5(5)
Mendapat: 2

Tetapi, saya ada perkara yang lebih teruk untuk dikatakan!

Selebihnya aksara dalam input masih ada dan jika kita memanggil fungsi Scanln() sekali lagi, ia akan membacanya.

Penyelesaian:

Terdapat satu lagi fungsi yang dipanggil Scanf() dalam pakej fmt.
Lelaki ini berbeza!
Ia mengambil input berdasarkan penentu format dan menyimpannya dalam pembolehubah yang kami berikan.
Kod:

    text := ""

    fmt.Println("Enter expression:")
    for {
        var temp rune
        fmt.Scanf("%c", &temp)
        if temp == '\n' {
            break
        }
        text += string(temp)
    }
    fmt.Printf("You entered:\n %v", text)
Salin selepas log masuk

Penjelasan:
1.Cetak "Masukkan ungkapan:"
2. gelung bermula
3. Sekarang, gelung mengambil input daripada pengguna, char by char(rune by rune in go)
5.Dan dalam setiap lelaran, kami mengambil rune itu dan menambahnya atau menambahkannya pada pembolehubah teks kami.
6. Apabila ia membaca 'n', maka ia memecahkan gelung dan kita mendapat baris input di dalam teks pembolehubah.
7. Di sini, rune juga boleh menjadi aksara angkasa.
Jadi, secara literal ia berbunyi walaupun 'n'.

(Membaca aksara ruang adalah pengecualian untuk Scanf("%c",&var_name) dan itulah yang kita mahu!)

Nota: Ia juga menyelesaikan masalah yang kita dapat apabila kita membaca lebih daripada satu baris. Maksud saya, kita mendapat input atau tingkah laku yang tidak dijangka apabila kita membaca lebih daripada satu baris(saya tidak tahu yang tepat sebab!).
Tetapi di sini, memandangkan kita sedang membaca char demi char, termasuk 'n' juga(ke dalam temp var), akan menghapuskan semua ralat tersebut!

Atas ialah kandungan terperinci mengambil input dengan ruang dalam pergi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan