我按照你的代码:
编写1.txt文件:
代码修改为:
结果就是这样的,不是错,因为你的list[]定义的是char数组,可以正确的显示出字符,但是你的num[]定义的是int数组,相当于把char转换成了int,而char转换成int时,实际值为该字符对应的ASCII码。
首先我们查一下ASCII码,找到字符'0'对应的十进制数(即int的值):
是48,也就是说,字符'0'相当于十进制数48,所以读我的1.txtx文件,第一个字符是'1',你的num[j]=list[j]-'0'计算的时候,就是'1'-'0'相当于49-48=1,所以字符1打印出来就是1。
然后我们看我1.txt的第4个字符,是'a',找到'a'的码值:
所以'a'-'0'相当于97-48=49,所以打出来的结果才是49,同理就可以得出了字符'b'、'c'、'!'、'@'、'#'减'0'后的结果了。
1、num[j]=list[j]-0;