12
数字の文字列を1つずつ取得したいので、while
ループ とcin.get()
を1桁ずつ使用する関数を使用しています。cin.getを使用して整数を取得する
しかしcin.get()
char
sと数字を取得し、私は私の変数がnumrical値と、私は、入力として取得番号のないASCII値 を含ませることはできません キャストを使用しようとしているにもかかわらず。
数字の文字列を1つずつ取得したいので、while
ループ とcin.get()
を1桁ずつ使用する関数を使用しています。cin.getを使用して整数を取得する
しかしcin.get()
char
sと数字を取得し、私は私の変数がnumrical値と、私は、入力として取得番号のないASCII値 を含ませることはできません キャストを使用しようとしているにもかかわらず。
cin.get
数字を解析できません。手動で行うこともできますが、なぜならこの関数は既に存在するので、この関数を再実装するのはなぜですか?一般に*
int number;
std::cin >> number;
、ストリーム演算子(<<
と>>
)は一方フォーマット出力と入力、istream::get
の世話をすると、生の文字のみを抽出します。もちろん
*、あなたがこの機能を再実装するを持っている場合は、それには何もありません。
数字の文字から数値を取得するには、0-9の10進数の文字コードが連続していることを利用できます。したがって、以下の関数はそれらを隠すことができます:
int parse_digit(char digit) {
return digit - '0';
}
私は講義で学んだことのない関数を使用することはできません。 – Quaker
@Eranああ、すごく馬鹿だ。さて、答えを修正しましょう。 –
'static_cast'は必要ありません。コンパイラは 'char'値を伝えずに' int'に変換します。 –