对我的任务的进一步帮助我早些时候问过。从标准输入读取字符串后,它会检查任何非ASCII字符。它发现的任何内容都将显示它的十六进制值和零偏移量。我知道它显示十六进制很好,但我很难弄清楚如何显示偏移量。这是我当前的代码,用于提出这个问题,只显示相关的行。在C中,检查字符串中的偏移量并计算字节数
#define MASK 0x80
auto int inChar;
if ((inChar & MASK) == MASK)
{
printf("NON-ASCII INPUT: %x detected at offset %#x \n", inChar, inChar);
nonascii = 1;
}
还有一件事我需要帮助,希望这会更容易回答。如果行读取除了ASCII之外什么也没有,它就是这样写出来并显示读取的总字节数。我知道如何用整数和乘法来做到这一点,只需要计算一次做某事的次数,但教授似乎希望我们以更直接的方式做到这一点。
这是我写的代码。
if (nonascii == 0)
printf("The input stream was pure ASCII with a total of %d bytes read", (numBytes &= inChar));
非常感谢那些帮助我的人。