Ниже мой код. Я хочу, чтобы моя программа принимала первый символ входного слова, сохраняла его как число 1 и принимала второй символ как число 2. Однако я получаю сообщение об ошибке.
«Преобразование из целочисленного типа в тип указателя требует reinterpret_cast, приведение в стиле C или приведение в стиле функции»
char number1;
char number2;
int all;
cout << "Enter romans to change to numbers. " << endl;
n1 = cin.get();
n2 = cin.get();
В показанном вами коде нет ничего неправильного (синтаксически), о чем свидетельствует следующий полностью автономный пример:
#include <iostream>
int main(){
char n1;
char n2;
int total;
std::cout << "Enter roman numerals to change to numbers." << std::endl;
n1 = std::cin.get();
n2 = std::cin.get();
return 0;
}
Это и компилируется и работает нормально, поэтому ваша проблема должна лежать в другом месте.
Вы должны лучше учитывать сообщение об ошибке, которое выдает ваш компилятор, в частности номер строки. Затем осмотрите файл в этой точке или около нее (и покажите нам, если вы не можете ее выяснить).
Такого рода сообщения об ошибках я ожидаю увидеть, если вы случайно объявили n1
или же n2
переменные как char *
скорее, чем char
, В таком случае gcc
дает мне нечто похожее на то, что вы утверждаете:
qq.cpp: In function 'int main()':
qq.cpp:9: error: invalid conversion from 'int' to 'char*'
qq.cpp:10: error: invalid conversion from 'int' to 'char*'
Других решений пока нет …