Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

usage of the return value of scanf

Tags:

c

scanf

I am learning C from a book and I am starting with loop instructions. But there is a sample code which I could not understand.

Can anyone tell me why author has used status = scanf("%ld", &num); ? Why there is a = with scanf ?

/* summing.c -- sums integers entered interactively */
#include <stdio.h>
int main(void)
{
    long num;
    long sum = 0L; /* initialize sum to zero */
    int status;      
    printf("Please enter an integer to be summed ");
    printf("(q to quit): ");
    status = scanf("%ld", &num);
    while (status == 1) /* == means "is equal to" */
    {
        sum = sum + num;
        printf("Please enter next integer (q to quit): ");
        status = scanf("%ld", &num);
    }
    printf("Those integers sum to %ld.\n", sum);
    return 0;
}
like image 364
dhiman007 Avatar asked May 16 '15 17:05

dhiman007


1 Answers

Because scanf() returns a value indicating how well the string matched the format passed, i.e. how many parameters were successfuly filled with data.

You would know that if your read some kind of manual page, or the standard, if you ever encounter a function that you don't know, always read about it as much as you can, so you can understand how to use it.

like image 151
Iharob Al Asimi Avatar answered Sep 23 '22 10:09

Iharob Al Asimi