Теперь я делаю переход от C на C++ 11, и я стараюсь больше узнать о кастинге. В конце этого вопроса вы видите небольшую программу, которая запросила номер в качестве ввода, а затем отображает его как число и как символ. Затем он передается символу, и после этого я возвращаю его в size_t.Кастинг от size_t до char и вокруг
Когда я даю 200 в качестве входных данных, первый cout печатает 200, а второй распечатывает отпечатки 18446744073709551560. Как мне сделать это для печати 200 снова? Использую ли я неправильный перевод? Я уже пробовал разные актеры как динамические и reintepret.
#include<iostream>
using namespace std;
int main(){
size_t value;
cout << "Give a number between 32 and 255: ";
cin >> value;
cout << "unsigned value: " << value << ", as character: `" << static_cast<char>(value) << "\'\n";
char ch = static_cast<char>(value);
cout << "unsigned value: " << static_cast<size_t>(ch) << ", as character: `" << ch << "\'\n";
}
Преобразование между 'size_t' и' char' совершенно законно, но я не могу придумать случай, когда вы действительно хотите сделать это в реальной жизни. –
Правда, в реальной жизни не нужно (я думаю?). Тем не менее, я стараюсь лучше понять листинг и разные типы в C++ – Michiel