Avatar ·

Como converter char para int em C e C++? Entendendo dígitos e caracteres

Olá a todos! Comecei a estudar C++ e me deparei com uma situação confusa. Preciso ler um caractere da entrada padrão e transformá-lo em um número inteiro para realizar operações aritméticas com ele. Aqui está meu código em C++: ```cpp #include using namespace std; int main() { char c; cout << "Digite um dígito: "; cin >> c; int num = (int)c; // Tentando converter char para int cout << "O número digitado multiplicado por 2: " << num * 2 << endl; return 0; } ``` Se eu digito `5`, espero obter como saída `10`, mas o programa imprime `106`! Por que isso acontece? Eu li que `char` é um tipo inteiro e pode ser convertido para `int`. Mas, aparentemente, estou fazendo algo errado. Digam-me como converter corretamente um caractere que contém um dígito para um número inteiro? E qual é a diferença entre a conversão de char para int no estilo C e no estilo C++? Desde já, agradeço pela ajuda! <<>>

Por que ocorre o erro?

Seu problema é uma armadilha clássica para iniciantes.