题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
/*EOF 在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。
在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。 C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。 while(~scanf("%d",&n)) <=> while(scanf("%d",&n)!=EOF) 1.正常输入的时候,scanf返回输入的数字如1,2,3等等,对这些数字取非,不会成为0,就会执行循环; 2.错误输入指的就是没有输入的时候,scanf返回的是EOF(End Of File),EOF=-1,对EOF取非,就是对-1取非 [~是位运算,它是将数据在内存中的每一位(当然是二进制)取反。-1在内存中所有位全部为1,~(-1)=0,即对-1取非就是0] 就会跳出循环。 */ #include <stdio.h> int main(void) { int num = 0; while (~scanf ("%x", &num)) printf("%d ", num); return 0; }