题目:
统计代码行数,编写一个脚本,读取代码文件,统计其中的代码行数(即不包括注释和空行),并输出总行数和代码行数。**
set in_f "./in.f"
set blank_lines 0
set comment_lines 0
set code_lines 0
set fin [open $in_f r]
while {[gets $fin line] != -1 } {
set line [string trim $line]
if{$line == " "} {
incr blank_lines ##空行计数
} elseif {[string match "/*" $line] } {
set comment_lines [expr {$comment_lines +1}]
while {[gets $fin line] != 1} {
set comment_lines [expr{$comment_lines +1}] ##多行注释计数
if {[string match "*/" $line]} {
break
}
}
} elseif {[string match "//*" $line]} {
incr comment_lines ##单行注释计数
} else {
incr code_lines
}
}
set total_lines [expr $balnk_lines + $comment_lines + $code_lines]
puts "total lines: $total_lines "
puts "code_lines: $code_lines "
close $fin
多行注释很容易忘掉,使用了字符串命令string match和数值计算命令expr