解析 Go Command() 时出现问题.输出()



我在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 格式吗?

输出包含特殊字符。首先,您需要去除任何这些字符(例如nr).
您可以使用strings.TrimSpace.

然后要将字符串解析为int64,您将使用:

if i, err := strconv.ParseInt(s, 10, 64); err == nil {
fmt.Printf("i=%d, type: %Tn", i, i)
}

最新更新