charをintに変換したい。しかし、通常の方法を使用する場合getchar()の余分な数値でcharをIntに変換する
convertedInt = c - '0';
私は結果を印刷するときに余分な負の数を取得します。例えば、入力654と、このコードは出力を生成します
while (c != '\n'){
c = getchar();
convertedInt = c - '0';
printf("%d\n", convertedInt);
}
//Output
4
5
6
-38
私はちょうどそれを変換せずに文字を印刷する場合、私は、予想される出力を得るために、それはGETCHARとは何かを持っているとは思いません。
負の数を印刷しないif文を記述します。 – Pbd
私はそれが有効な解決策であることに同意しますが、私はそれが気に入らないのです。それはお粗末なようです。私はなぜこれが起こり、if文なしで止めることができるのか知りたいと思います。 (なぜそれが表示されるのかわからない場合は、-38になることはいつも知っていますか?) – frillybob
あなたの文字列には、あなたが気付いていないいくつかの余分な文字があるからです! – Pbd