scanf tips

標準Cライブラリーのscanf()、fscanf()、sscanf()は、意外と知られていないのですが、変換に成功した個数を関数の戻り値としています。
また、標準Cライブラリーのatooi()、atol()、atof()は、文字列を数値に変換する関数ですが、変換に失敗すると黙って0を返すという欠点があります。
そこで、次の関数、my_atoi()を作りました。
int my_atoi(char const *nptr)
{
  int value;
 
  if (sscanf(nptr, "%d", &value) != 1) {
    fprintf(stderr, "Warning: my_atoi(¥"%s¥") returns 0.¥n", nptr);
    return 0;
  } else {
    return value;
  }
}
便利ですよ。
 
sourceforge.jpにもソースファイルを置いてあります。次のコマンドで、私が作ったライブラリー一式を取り出せます。
cvs -d:pserver:anonymous@cvs.sourceforge.jp/cvsroot/ecell2d co naota-lib

(C) 2003 石川直太 無保証
C/C++ tips に[戻る]
Tips に[戻る]
石川直太のホームページに[戻る]