在 go 中列印使用者輸入的字串 n 次
我是新手,我只想列印使用者輸入的字串 n 次,但它只是列印空格 n 次。這是我的程式碼
package main import ( "fmt" ) func main() { var n int var s string fmt.Scanf("%d", &n) fmt.Scanf("%s", &s) for i := 0; i < n; i++ { fmt.Printf("%s\n", s) } }
有辦法解決這個問題嗎?謝謝。
正確答案
檢視scanf
文件
與您的問題最相關的兩點是:
- 空格分隔值
- 輸入中的換行符號必須與格式中的換行符號相符
因此,如果您按原樣運行應用程序,然後輸入 20 foo
並按 Enter 鍵,您將獲得預期的輸出(foo
列印 20 次)。但是,如果您輸入 20
然後按 Enter 鍵,您將獲得 20 個空白行;看看為什麼讓我們運行:
var n int var s string fmt.Scanf("%d", &n) _, err := fmt.Scanf("%s", &s) if err != nil { panic(err) }
這會因 panic: Unexpected newline
而出現恐慌,因為根據規範,「輸入中的換行符號必須與格式中的換行符相符」。假設您希望在每次輸入後按 Enter 鍵,則可以使用 fmt.Scanf("%d\n", &n)
。但是,正如您在評論中提到的,如果您使用fmt.Scanf("%s\n", &s)
並輸入包含空格的字串,那麼您只會得到第一個(因為scanf
使用空格作為分隔符號)。 < /p>
如果您想從 stdin
取得整行,那麼這個問題的答案提供了一些選項,例如
func main() { var n int var s string fmt.Println("How many times? ") fmt.Scanf("%d\n", &n) fmt.Println("What to output? ") reader := bufio.NewReader(os.Stdin) s, _ = reader.ReadString('\n') for i := 0; i < n; i++ { fmt.Printf("%s", s) } }
以上是在 go 中列印使用者輸入的字串 n 次的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

是的,H5頁面製作是前端開發的重要實現方式,涉及HTML、CSS和JavaScript等核心技術。開發者通過巧妙結合這些技術,例如使用<canvas>標籤繪製圖形或使用JavaScript控制交互行為,構建出動態且功能強大的H5頁面。

關於inline-block元素錯位顯示的原因及解決方案在編寫網頁佈局時,我們常常會遇到一些看似奇怪的顯示問題。比...

CSS自定義resize符號的方法與背景色統一在日常開發中,我們經常會遇到需要自定義用戶界面細節的情況,比如調...

如何實現分段器的45度曲線效果?在實現分段器的過程中,如何讓點擊左側按鈕時右側邊框變成45度曲線,而點�...

實時比特幣美元價格 影響比特幣價格的因素 預測比特幣未來價格的指標 以下是 2018-2024 年比特幣價格的一些關鍵信息:

如何使用JavaScript或CSS控制瀏覽器打印設置中的頁首和頁尾在瀏覽器的打印設置中,有一個選項可以控制是否顯�...
