ДК
Дашута Косенкова

С++ static_cast. не выполняется приведение типов, в чём ошибка?

#include
#include
#include
using namespace std;
int main()
{
char ch;
ifstream in;
ofstream out; //ввод вывод
in.open("Test.bmp", ios::binary);
in.is_open();
out.open("Test.txt", ios::out);
out.is_open();
out.setf(ios::hex, ios::basefield);
out.setf(ios::showbase);
while (!in.eof())
{
in.get(ch);
//Здесь надо было привести char к integer
out.put(static_cast(ch));
}
in.close();
out.close();

getch();

return 0;
}
//-----------------------------------------------

#include
#include
#include
using namespace std;
int main()
{
char ch;
ifstream in;
ofstream out; //ввод вывод
in.open("Test.bmp", ios::binary);
out.open("Test.txt", ios::out);
out.setf(ios::hex, ios::basefield);
out.setf(ios::showbase);
while (!in.eof())
{
in.get(ch);
out.put(static_cast(ch));
}
in.close();
out.close();

getch();

return 0;
}
//------------------------------------------

Тарасенко Наталья
Тарасенко Наталья

Кто сказал, что не выполняется? Выполняется.
Вот только функция ostream::put требует параметр char, поэтому тут же происходит еще один, неявный, каст.

Екатерина
Екатерина

потуму что char - 1 байт, а int - 4
используй Си-каст
char c = 'a';
int i = (int)c;

Похожие вопросы
В чём ошибка в синтаксесе
В чём ошибка? язык Си
Подскажите в чём ошибка
В чём ошибка программы
Подскажите в чём ошибка программы
Подскажите пожалуйста в чём ошибка?
в чём ошибка? поомогите исправить
подскажите в чём тут ошибка
в чём здесь ошибка с++
Написал тег ... В чём ошибка?