Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
#1

Ввод/вывод чисел посредством unsigned char - C++

11.11.2016, 09:33. Просмотров 1117. Ответов 14

Здравствуйте.Столкнулся с проблемой. Как правильно вводить/выводить unsigned char?


C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
using namespace std;
void main()
{
    unsigned char x, y;
    x = 12;
    cin >> y;
    printf("%u \n", x); //тут выводит правильно
    printf("%u", y); //а тут вывод =49
    system("pause");
}
Почему y равен не введенному числу,а 49? как вывести правильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2016, 09:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ввод/вывод чисел посредством unsigned char (C++):

Вывод unsigned char
вот задание: Создать абстрактный базовый класс Pair с виртуальными...

Приведение типов unsigned char[2] to unsigned char [64]
Добрый день! Подскажите пожалуйста, как поступить. Есть простая функция main...

Char unsigned char signed char длинна Кааак
Здравствуйте. char l = {0,0}; l = 0xff; Почему, меня, компилятор...

Сделать преобразование unsigned char в char, а затем типу int
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для...

Std::fstream почему функция write принимает параметр char* а не unsigned char* (аля byte*) ?
Ну собственно сабж... std::fstream fs; fs.write((char*)..) В случае...

Неверная конверсия из char* в unsigned char*
Здравствуйте. Почему-то ловлю ошибку, гласящую о том, что не удалась конверсия...

14
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
11.11.2016, 09:36 #2
%u - это для unsigned int.
Что именно ты хочешь получить? Чем простой char плох?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4385 / 2360 / 655
Регистрация: 18.10.2014
Сообщений: 4,002
11.11.2016, 09:50 #3
Цитата Сообщение от Menshakovich Посмотреть сообщение
Почему y равен не введенному числу,а 49?
Потому что оператор >> для стандартного потока и аргументов типа char, signed char, unsigned char читает не "введенное число", а один символ.

Цитата Сообщение от Menshakovich Посмотреть сообщение
как вывести правильно?
Это вопрос не вывода, а ввода. Используйте для ввода чисел другой тип. Не [signed/unsigned] char.
0
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
11.11.2016, 19:06  [ТС] #4
Я бы с удовольствием другим типом воспользовался,но в задаче нужно использовать именно unsigned char
0
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
11.11.2016, 19:31 #5
В какой задаче? Введёшь int, а после можешь поместить в char.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4385 / 2360 / 655
Регистрация: 18.10.2014
Сообщений: 4,002
11.11.2016, 19:42 #6
Цитата Сообщение от Menshakovich Посмотреть сообщение
но в задаче нужно использовать именно unsigned char
Используйте на здоровье, если нужно! Но вот только для чтения из cin придется использовать временную переменную другого типа. У cin нет средств числового чтения прямо в unsigned char.
0
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
12.11.2016, 22:43  [ТС] #7
Ввожу в unsigned int. Перемещаю в char s. И не знаю как теперь загнать значение char в unsigned char. C strcpy невозможно из-за unsigned,пробую с memcpy,но и с ним вылетает(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void main()
{
    unsigned char y;
    y = 0;
    unsigned int x;
    cin >> x;
    char s[10];
    _itoa_s(x, s, 10);
    cout << s << endl;
    memcpy((unsigned char*)y, s,strlen(s));
    cout << y << endl;
    system("pause");
}
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 1
Завершенные тесты: 2
12.11.2016, 22:49 #8
Menshakovich, Не усложняйте.
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    unsigned char x;
    unsigned short y;
    std::cin >> y;
    x = y;
    std::cout << x;
}
0
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
13.11.2016, 18:33  [ТС] #9
он выводит не число, а знак....
0
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
13.11.2016, 18:36 #10
C++
1
std::cout << static_cast<unsigned short>(x);
0
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
13.11.2016, 19:02  [ТС] #11
А это только в выводе изменяется? само значение перемещается в x?

Добавлено через 14 минут
просто надо изменить именно само х,чтобы в дальнейшем выполнять операции
0
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
13.11.2016, 19:20 #12
Как изменить? Ну изменяй, а вывод в конце поставишь.
0
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
13.11.2016, 19:29  [ТС] #13
Как бы х должен стать unsigned char с вводимым значением y,дабы я смог с этим unsigned char работать. Но без вывода-то смайлики появляются.
0
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
13.11.2016, 19:34 #14
Menshakovich, тебе TheCalligrapher уже объяснил, что ввод и вывод char как числа не поддерживается, поэтому надо преобразовывать в другой тип.
0
Menshakovich
1 / 1 / 2
Регистрация: 11.11.2016
Сообщений: 117
13.11.2016, 20:06  [ТС] #15
Все-все. Дошло.Операции-то выполняются.
Огромное спасибо!
0
13.11.2016, 20:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2016, 20:06
Привет! Вот еще темы с решениями:

Ввод и вывод в массив char
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;locale.h&gt; #include...

const char и unsigned char
Всем привет. Такое дело. Это даже проблемой не назовешь, но суть такая. Мне...

Совместимость char и unsigned char
Есть некие числа в виде unsigned char. Есть строка в виде массива char (которая...

Unsigned char * в char * и наоборот
Здравствуйте!помогите перевести unsigned char * в char * и наоборот без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru