fputcの仕様
というのをやりたかったので、char⇔int変換をやってくれる関数を探してました。
で、検索してたらfputcにたどり着きました。
int fputc(出力したいもの(int型),出力先ファイルポインタ);
こんな感じの説明をちらほらみかけたので、int型をchar型で出力してくれるんですかやったーって思ってました。
でも使ってみるとint型の70を渡したのに3730って出力されたりしてパニックに。
よく考えてよく調べてみると、fputcの第一引数はint型の文字コードだと気付きました。
コンピュータ内部では
’a’ ’b’ ’c’ はそれぞれ
61 62 63 のような数値で扱われています。
'70' という文字の文字コードは70では無いということを失念していました。
fputcにそこまで考慮して変換するような機能は無いということです。
気をつけよう。
結局fprintfなら変換仕様を指定できることを思い出してなんとかなりました。