Дополнительная помощь по моему заданию, о которой я спрашивал ранее. После прочтения символьной строки из стандартного ввода, он проверяет наличие любых символов, отличных от ascii. Все, что он найдет, будет отображать его значение в шестнадцатеричном формате и нулевое смещение. Я получил это для отображения шестнадцатеричного просто отлично, но мне трудно понять, как отобразить смещение. Это мой текущий код для того, чтобы задавать этот вопрос, показывая только соответствующие строки.
#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));
Большое спасибо тем, кто мне в этом помогает.