Ответ Эдуардо Коста работает, но утечка памяти. Для вас лучше определить функцию, которая позаботится об этом:
int readint(char *p, char **e)
{
char *c = readline(p);
int i = strtol(c, e, 0);
if(e)
{
size_t o = (size_t)(*e - c),
l = strlen(*e) + 1;
*e = malloc(l);
// error checking omitted
memcpy(*e, c + o, l);
}
free(c);
return i;
}
Эта версия даже сохранит любые дополнительные материалы в строке, чтобы вы могли использовать их позже, если вам это нужно. Конечно, если вам нужно много делать с дополнительными вещами, вам может быть лучше просто прочитать строку и проанализировать ее самостоятельно, а не с помощью таких функций.