Le programme suivant ne compile pas.cin ne fonctionne pas avec typecaset
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char c;
cin >> (int)c; // stat 1
//scanf("%d", &c); //stat 2; this when complied gives warning
cout << c << endl;
}
Q1. Comment utiliser cin
pour accepter la valeur ASCII d'un caractère. Je veux le faire en utilisant une variable char.
Q2. S'il est garanti que la valeur entrée par l'utilisateur se situe dans la plage de caractères, stat 2toujours produire le résultat souhaité.
Merci @ Joachim-Pileborg. Mais ma question utilise un typecast (int) avec 'cin'. Explication donnée par vous résout le problème, mais je veux savoir sur le typage avec 'cin'. –
@DeepakAggarwal '(int) c' ne fonctionne pas parce que vous avez créé un temporaire. '(int) c' n'est pas * traiter c comme un int *. c'est * créer un int qui a la valeur de c *. – NathanOliver
@DeepakAggarwal Pour être plus précis, les fonctions d'opérateur d'entrée prennent des arguments de référence non-const, et '(int) c' crée un rvalue qui ne peut pas être lié à une référence non-const. –