回答
您不能使用fmt
包的Scanln()
和類似的功能,你想做的事,因爲從fmt
包doc報價:
Input processed by verbs is implicitly space-delimited: the implementation of every verb except %c starts by discarding leading spaces from the remaining input, and the %s verb (and %v reading into a string) stops consuming input at the first space or newline character.
的fmt
包故意過濾掉空格,這是怎麼回事實現。
取而代之的是使用bufio.Scanner
來讀取可能包含您不想過濾掉的空白的行。要從標準輸入讀取/掃描,請使用bufio.NewScanner()
函數創建新的bufio.Scanner
,並傳遞os.Stdin
。
例子:
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
line := scanner.Text()
fmt.Printf("Input was: %q\n", line)
}
現在,如果你輸入3個空格,然後按輸入,輸出將是:
Input was: " "
,保持,直到終止應用程序讀取線更完整的示例或輸入"quit"
,並檢查是否有錯誤:
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
line := scanner.Text()
fmt.Printf("Input was: %q\n", line)
if line == "quit" {
fmt.Println("Quitting...")
break
}
}
if err := scanner.Err(); err != nil {
fmt.Println("Error encountered:", err)
}
令人驚訝的是,我還沒有完全閱讀有關fmt包的所有文檔,謝謝@icza – fauzanrazandi
感謝您的解決方案。無論如何,這讓我感到困惑,從「掃描線()」明顯縮短的命令不會讀直到線結束。 – C4u
- 1. golang接受空格輸入
- 2. MultiAutoCompleteTextView不接受空格
- 3. MVC DataAnnotation接受沒有空格
- 4. 如何使輸入接受空格?
- 5. 如何讓cin接受空格?
- 6. CSS:不要接受全格
- 7. MeCab路徑參數不接受Windows上的空格
- 8. SSIS DTEXEC包變量空格字符不接受
- 9. 接受istream的空白值
- 10. oracle的to_date函數不接受格式
- 11. 在Google電子表格中查詢列表時不接受ListQuery的空格
- 12. 在Golang服務器中接受一個持久的tcp連接
- 13. GoLang - 將nil傳遞給接受接口的函數
- 14. jquery sortable - 空div不會接受值
- 15. 空白表單字段不接受
- 16. 設置Sequelize#belongsTo()不接受空引用
- 17. Logcat不再接受空標籤
- 18. WSO2ESB:屬性設置不接受空值
- 19. 問題在接受C++中的字符串的空格
- 20. JSX風格不接受可變
- 21. 是否接受空NSCameraUsageDescription?
- 22. Golang API - MySQL連接但查詢爲空
- 23. 正則表達式只接受單詞之間的空格
- 24. 創建一個C++表,接受帶空格的字符串
- 25. flex:只接受數字,字母,空格的正則表達式
- 26. WPF文本框不接受輸入,空間和退格的作品
- 27. golang在郵件上接受gzip壓縮的數據
- 28. Paremeters不接受
- 29. RegEx不接受%
- 30. 如何從Golang中的字符串中刪除多餘的空格/空格?
它已經做到了。它接受除新行外的所有空白。也許如果你給我們一個你想要掃描的輸入的例子,以及一個顯示你如何掃描它的小程序。 –