awk -F, '{match($0,/\[.*\]/);print $1"="substr($0,RSTART+1,RLENGTH-2)}' Input_file
该程序应该将十六进制输入('input')更改为二进制结果('numBin')。我没有太多使用switch语句的经验,也没有完全理解“默认”的情况,因此任何有关该问题的澄清或者如果我错误地使用它都会有所帮助!
我得到的错误是在for循环中,并且它是:在有符号和无符号整数表达式之间进行比较[-Wsign-compare]
答案 0 :(得分:2)
case '0':
case '1':
...
使用所有字符..不是数字和字符。
还有一件事...... for(i=0;i<(int) input.length();i++)
答案 1 :(得分:2)
在行中:
for (int i = 0; i < input.length(); i++) ...
input.length()返回size_t
,这是一个无符号类型。
(见http://www.cplusplus.com/reference/string/string/length/)
比较有符号值和无符号值是不安全的,这就是编译器警告你的原因,在这篇文章中阅读更多关于它的信息: A warning - comparison between signed and unsigned integer expressions
要解决此问题,只需更改为
即可unsigned int i = 0
当其他情况都不匹配时,将执行默认开关案例。你应该在那里放一些处理不正确输入的代码。