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.