according documentation:
¿Cómo me aseguro de que strtol() haya regresado correctamente?
En caso de éxito, la función devuelve el número entero convertido como mucho valor int. Si no se puede realizar una conversión válida, se devuelve un valor cero. Si el valor correcto está fuera del rango de valores representables, se devuelve LONG_MAX o LONG_MIN y la variable global variable errno se establece en ERANGE.
Considere strtol(str, (char**)NULL, 10);
si se str
"0\0"
¿Cómo saber si la función falló o sólo ha convertido a la cadena con "0"
número?
¿ha considerado 'scanf'? –
@StevenLuu: 'scanf' tiene un peor manejo de errores. Algunas implementaciones generalmente le darán basura en desbordamiento, pero sin indicar el error de ninguna manera. –