【書式】
#include <stdrom.h>
int xscanf(int (*get1)(char), const char *format, ...);
【解説】
xscanf() はscanf(3)と同じ機能を持つ関数ですが、1文字入力関数get1を指
定することができるため、どんなものからも書式付入力をおこなうことがで
きます。
get1はchar型のパラメタが'\0'のときには次の入力文字を返し、'\0'でない
ときにはその文字をプッシュバックする関数として作成してください。 ま
た、エラーが発生したときにはEOFを返してください。
formatについてはscanf(3)の説明を参照してください。
【使用例】
#include <stdrom.h>
int my_get1(char c)
{
if (c == '\0')
return (次の入力文字);
cをプッシュバックする
if (エラー)
return (EOF); /* エラーが発生した */
return (0); /* 成功 : EOF 以外 */
}
int bar()
{
int i;
if (xscanf(my_get1, "%d", &i) == 1)
return (i);
return (-1);
}
【リターン値】
正常に変換され、代入されたパラメタの数を返します。エラーまたはEOF の
ときにはEOFを返します。
【可搬性】
DOS窓
【参照】
scanf(3), xprintf(3)
【バグ】
xscanf()はscanf(3)同様に、入力を1文字先読みします。
【copyright (c) 安江正樹@東海大学理学部物理学科】