如何才能得知sscanf有没有利用完所有的输入数据呢?
在我处理用户输入的时候比如
12, 321.23
这样的坐标时,我采用了
sscanf("12, 321.23", "%lf,%lf", &x, &y);
但是当用户输入
12, 233.45@!5dkgj
即在合法数据后面,有非法的数据,如何才能检验出来呢?当然,其他形式的非法数据也要检验出来。
我采用的方法是,通过call stack ESP register计算sscanf内部的一个变量的地址,然后当sscanf运行返回后,检查那个变量,来得知sscanf有没有利用完所有的数据,是否所有输入数据都是合法的。
但是这种方法过于危险。请问大家有什么好方法吗?