Saya sedang menulis atur cara kalkulator yang meminta pengguna untuk ungkapan input dan mencetak hasilnya serta menggesa sekali lagi untuk ungkapan seterusnya.
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.
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)
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!