如何在 Go 中从控制台读取包含空格的多词字符串
发布时间 - 2026-01-21 00:00:00 点击率:次`fmt.scan` 只读取空格前的第一个单词,若需完整读取一行(含空格、制表符等),应使用 `bufio.newreader(os.stdin).readstring('\n')`。
在 Go 语言中,fmt.Scan(&variable) 默认以空白字符(空格、制表符、换行符)为分隔符,因此它只能捕获输入中的第一个“单词”,后续内容会被截断或遗留于输入缓冲区。例如,输入 "Hello World!" 时,sentence 仅得到 "Hello"。
要完整读取整行用户输入(包括中间空格、标点及特殊字符),推荐使用 bufio.Reader 配合 ReadString('\n'):
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入一句话:")
sentence, err := reader.ReadString('\n')
if err != nil {
fmt.Println("读取输入时发生错误:", err)
ret
urn
}
// ReadString 会保留末尾的 '\n',如需去除可使用 strings.TrimSpace
sentence = sentence[:len(sentence)-1] // 简单移除换行符(或改用 strings.TrimSpace)
fmt.Printf("你输入的是:%q\n", sentence)
}✅ 关键说明:
- bufio.NewReader(os.Stdin) 创建高效、带缓冲的输入读取器;
- ReadString('\n') 会持续读取直到遇到换行符(\n),并返回包含该换行符的字符串;
- 实际使用中建议检查 err(如用户意外关闭输入流),避免忽略错误;
- 若需清理首尾空白(包括 \n、\r、空格),可导入 "strings" 并调用 strings.TrimSpace(sentence),更安全可靠。
⚠️ 注意:不要混用 fmt.Scan 和 bufio.Reader 读取同一输入流,否则可能因缓冲区残留导致不可预期行为。统一使用 bufio 是处理多词/整行输入的最佳实践。
# go
# ai
# 字符串
# 第一个
# 换行符
# 的是
# 若需
# 推荐使用
# 请输入
# 句话
# 如需
# 发生错误
# 移除
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
新三国志曹操传主线渭水交兵攻略
JavaScript如何实现继承_有哪些常用方法
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
js实现获取鼠标当前的位置
网站建设保证美观性,需要考虑的几点问题!
JavaScript如何实现类型判断_typeof和instanceof有什么区别
如何有效防御Web建站篡改攻击?
Linux系统命令中screen命令详解
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
如何续费美橙建站之星域名及服务?
如何为不同团队 ID 动态生成多个“认领值班”按钮
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
移动端脚本框架Hammer.js
网易LOFTER官网链接 老福特网页版登录地址
linux top下的 minerd 木马清除方法
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何在橙子建站中快速调整背景颜色?
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
微信小程序 五星评分(包括半颗星评分)实例代码
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
黑客入侵网站服务器的常见手法有哪些?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
微信小程序 HTTPS报错整理常见问题及解决方案
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel安装步骤详细教程_Laravel环境搭建指南
JS碰撞运动实现方法详解
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Python3.6正式版新特性预览
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel Session怎么存储_Laravel Session驱动配置详解
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
js实现点击每个li节点,都弹出其文本值及修改
phpredis提高消息队列的实时性方法(推荐)
Laravel如何发送系统通知?(Notification渠道示例)
如何快速启动建站代理加盟业务?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何选择可靠的免备案建站服务器?
Laravel如何为API生成Swagger或OpenAPI文档
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
bootstrap日历插件datetimepicker使用方法


