C言語なら、俺に聞け! <8>
レス数が950を超えています。1000を超えると書き込みができなくなります。
0951デフォルトの名無しさん
NGNGscanf() が使いづらいのは
1. 字句解析
文字列の並びから、ここまでが数値、ここまでが演算子、といったようにトークンを
切り出す処理
2. 型変換
文字列の "1111" を int 型の 1111 に変換するような処理
を一つの関数にまとめてしまっていて、エラー処理などが難しいからでしょう。
実はscanf() の書式指定はかなり強力で(正規表現ほどではないけど、かなりのことが
できる)使いこなすと便利なのですが、それでも
1. 字句解析は getc(), ungetc() で一文字ずつ拾いながら、トークンの切れ目を探す
2. トークンの切れ目が見つかったらところで、トークン種別を確定して itoa, sscanf()
などで型変換
と 2 段階にした方がつぶしがきくので、よく使われます。
レス数が950を超えています。1000を超えると書き込みができなくなります。