При использовании std::istringstream
для чтения значений серого пикселя из файла (0-255) я замечаю странное поведение, и я не могу понять, что происходит.C++ Чтение ints как unsigned chars с использованием istringstream
Чтобы сохранить память, я хочу прочитать эти значения в unsigned chars (так как они имеют одинаковый диапазон 0-255). Однако, похоже, происходит какое-то отбрасывание/усечение.
входной файл:
194
194
155
155
124
194
Вот мой код:
getline(fp, line);
unsigned char temp;
istringstream iss(line);
iss >> temp;
Когда значение в файле 194
, например, целое значение температуры является 49
...
Что такое литье?
Вы можете использовать неформатированный ввод: 'std :: istream :: get' для байтов. –
Вопрос не в том, чтобы исправить код, это какой тип каста/усечения происходит? – user2600959
Пожалуйста, будьте более четкими относительно ваших входных данных. На данный момент мы можем только _guess_ в его формате, потому что «читать значения из файла» ничего не сообщает нам ничего! Мое предположение - это номера с пробелами в диапазоне 0 <= x <= 255 в десятичной форме, читаемой человеком, через ASCII. –