Для цикла написания специальных знаков - PullRequest
0 голосов
/ 08 октября 2011
void printchars()
{
  for (x=128;x<224;x++)
      write(x);

Я хочу, чтобы x был символом в функции записи.Как я могу изменить x для обработки функциями записи как char, но как int в цикле?

Ответы [ 2 ]

2 голосов
/ 08 октября 2011

Какой смысл ставить x на int, если вы просто собираетесь сократить его диапазон?Вот что делает это очень странной просьбой.Вы должны просто сделать x a unsigned char - for(unsigned char x = 128; x <224; ++ x) { ....

. Если вы просто хотите убедиться, что вы вызываете шаблон unsigned char специализацию write<>, то назовите его так:

write<unsigned char>(x);

Если нет, то вам придется использовать приведение типа:

write((unsigned char)x);

Редактировать :Я только что понял, что вы можете испытывать.Я предполагаю, что вы первоначально использовали char, но обнаружили, что что-то не так с числами свыше 127. Возможно, вам следует использовать unsigned char для x вместо int или char.Я отредактировал свой ответ, чтобы учесть это.char имеет диапазон от -128 до +127.unsigned char имеет диапазон 0-255.

1 голос
/ 08 октября 2011

Приведите x к символу:

write(static_cast<char>(x));

Обратите внимание, что x также может быть символом в качестве счетчика цикла.

...