我必须为我的大学项目编写一个代码,该代码可以读取二进制文件并打印出整数值。这只是我写的一小段内容:
signed int ch;
while ((ch = fgetc(fp)) != EOF) {
print("Value of n=%d",ch);
}
但是,我无法打印负值。我的意思是,如果输出的是33、33的值,否则输出的是-33、223的值。我仍然是初学者,对错误的代码感到抱歉。我尝试将值读取为十六进制,然后打印出来,但这不起作用。用%d读取文件也不起作用。我可以通过将数字转换为二进制,检查符号位然后进行2的补码来获得正确的值,但是我必须在稍后的阶段正确地返回该值,而无需进行任何操作,因此这不是可行的解决方案。总而言之,我想读取一个负值,将其存储并打印,而无需任何其他操作。如果有人知道我在做什么错,请帮忙!再次抱歉,这是一个初学者的问题。