以下代码正在跳过奇数行,例如1,3,5,7,9 ......必须使用此代码从文件中获取所有行
set in [filename r]
seek $in 0 start
while { [gets $in line] != -1 } {
gets $in line
puts $line
}
答案 0 :(得分:4)
你在条件下进行一次gets $in line
,进入循环体内进行一次;因此,在条件中读取的行会丢失。您可能想要删除循环体中的那个。
答案 1 :(得分:0)
你已经使用了两倍,这就是为什么你只得到奇数行
其他解决方案:
而不是使用获取我更喜欢使用读取函数来读取文件的整个内容,然后逐行处理。因此,我们通过将其作为行列表来完全控制文件操作
设置fileName [lindex $ argv 0]
catch {set fptr [open $ fileName r]};
设置内容[read $ fptr]; #Read文件内容
关闭$ fptr;关闭文件,因为它现在已被阅读
设置splitCont [split $ contents“\ n”]; #Split新行上的文件内容
splitCont是将文件行作为单个元素的列表