-2
次のプログラムはコンパイルされません。cinが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。 cin
を使用して文字のASCII値を受け入れる方法char変数を使ってやりたい
Q2。ユーザーの入力値が文字の範囲内にあることを確認する場合は、stat 2常にとなります。
ありがとうございました@ Joachim-Pileborg。しかし、私の質問は、 'cin'で型キャスト(int)を使うことです。あなたが与えた説明は問題を解決しますが、私は 'cin'を使って型キャスティングについて知りたいと思います。 –
@DeepakAggarwal '(int)c'は、一時的に作成したため動作しません。 '(int)c'はcをint *として扱いません。 * c *の値を持つintを作成します。 – NathanOliver
@DeepakAggarwalより正確には、入力演算子関数は非const参照引数をとり、 '(int)c'は非const参照にバインドできないrvalueを作成します。 –