Джанго Кассандра Пагинация

Лучше читать полную строку, используя fgets(), а затем проверять ее, а не пытаться разобрать «на лету» из входного потока.

Легче игнорировать недействительные input.

Используйте fgets(), а затем просто strtol(), чтобы преобразовать в число, это позволит легко увидеть, есть ли завершающие данные после номера.

Например:

char line[128];

while(fgets(line, sizeof line, stdin) != NULL)
{
   char *eptr = NULL;
   long v = strtol(line, &eptr, 10);
   if(eptr == NULL || !isspace(*eptr))
   {
     printf("Invalid input: %s", line);
     continue;
   }
   /* Put desired processing code here. */
}
1
задан Thomas John 27 February 2019 в 05:04
поделиться