我在exec的帮助下在Go中使用第三方工具。命令,该程序将打印出一个大的整数值,该值显然是字符串格式。我在将该字符串转换为 int(或更具体地说是 uint64)时遇到问题。
详: (您可以忽略它是什么程序等,但运行后它会返回一个大整数)
cmd := exec.Command(app, arg0, arg1, arg3)
stdout, err := cmd.Output()
if err != nil {
fmt.Println(err.Error())
return
}
temp := string(stdout)
在我上面运行后,我正在尝试将其解析
如下myanswer, err = strconv.Atoi(temp) //I know this is not for uint64 but I am first trying for int but I actually need uint64 conversion
if err != nil {
fmt.Println(err)
return
}
这里的问题是标准输出将\r附加到其输出中,AtoI无法解析并给出错误
斯特康夫。Atoi:解析"8101832828\r":语法无效
有人可以帮我如何将此字符串输出转换为 uint64 和 int 格式吗?
输出包含特殊字符。首先,您需要去除任何这些字符(例如n
或r
).
您可以使用strings.TrimSpace
.
然后要将字符串解析为int64
,您将使用:
if i, err := strconv.ParseInt(s, 10, 64); err == nil {
fmt.Printf("i=%d, type: %Tn", i, i)
}