gpt4 book ai didi

parsing - 在 Tcl 中处理带前导零的数字

转载 作者:行者123 更新时间:2023-12-02 10:52:45 29 4
gpt4 key购买 nike

我在 Tcl 中使用带前导零的数字时遇到问题。我正在解析一些可能有前导零的数字,例如“0012”,它应该被解释为整数“12”。

$ tclsh
% set a 8
8
% set b 08
08
% expr $a - 1
7
% expr $b - 1
expected integer but got "08" (looks like invalid octal number)

处理 Tcl 中可能有前导零的数字的最佳方法是什么?

顺便说一句,如果“08”是无效的,那么在 Tcl 中什么构成有效的八进制数?

最佳答案

您会想阅读Tcl and Octal Numbers在 Tcl 维基百科上。规范的方法是将您的输入视为字符串并使用 scan命令提取数字。这导致了这个,是的,多行,过程:

proc forceInteger { x } {
set count [scan $x %d%s n rest]
if { $count <= 0 || ( $count == 2 && ![string is space $rest] ) } {
return -code error "not an integer: \"$x\""
}
return $n
}

关于parsing - 在 Tcl 中处理带前导零的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2110864/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com