Значения атолла для отрицательных чисел в C - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь использовать atoll для преобразования строки чисел с пробелами.Я хочу сделать цикл в C, который будет принимать только положительные числа.

До сих пор, насколько я понимаю, atoll на char возвращал бы 0, также с комбинацией int и char, такой как "3a».Однако существует ли диапазон значений для отрицательных чисел для атолла на отрицательном числе?

Я обнаружил, что результат -1 равен 18446744073709551615, -2 равен 18446744073709551614, -3 равен 18446744073709551613 и т. Д., Основываясь на моем первом операторе печати. ​​

for(arg = 1; arg < argc; ++arg)
{
   printf("%llu\n", atoll(argv[arg]));

   if(atoll(argv[arg]) == 0 || atoll(argv[arg]) >= xxxxx))
   {
     printf("Enter a valid number.");
   }
   else
   {
     printf("irrelevant code here");
   }
}

1 Ответ

0 голосов
/ 12 февраля 2019

Из вашего фрагмента кода невозможно выяснить несколько важных вещей.Включили ли вы правильные заголовки, использовали ли вы правильные спецификаторы формата и модификаторы длины в printf?В приведенном ниже примере вы можете найти правильный включает правильный формат для долго и долго.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("%lld\n", atoll("-1"));
    return 0;
}

/ * в этом примере выводится правильный вывод -1 * /

...