| 
    
     |   |  CS256 - Principles of Structured Design  Fall 2021  |   Displaying ./code/cs256su21code/may27/scanf.c #include <stdio.h>
int main(){
    /*
        declaring a few integers
        and character arrays 
    */
    int a, b, c, e, f, g;
    char j[64]; 
    char d[64]; 
    char h[64];
    char i[64];
    /*
        The character arrays above will hold up to 64 characters
        we specify the number of characters we want to hold inside 
        the brackets
    */
    printf("1. Enter a number: ");
    scanf("%d", &a); /* 
                        we're telling scanf to expect 1 integer.
                        since we are dealing with integers, we     
                        need the & (the address-of operator) in front 
                        of where we are going to store the integer
                     */
    printf("2. Enter two numbers: ");
    scanf("%d %d", &b, &c); //telling scanf to expect 2 integers
    printf("3. Enter a word: ");
    scanf("%s", j); /*
                        here, we're telling scanf to expect 1 string,
                        since this is a string, we do not need the & in
                        front of the variable.
                     */
    printf("4. Enter a number and a word: ");
    scanf("%d %s", &e, d); //telling scanf to expect an integer and a string, in that order
                           // you can mix and match what inputs you want scanf to take
    printf("5. Enter two words: ");
    scanf("%s %s", h, i); //telling scanf to expect two strings
    //printing everything out here
    printf("1. %d\n", a);
    printf("2. %d %d\n", b, c);
    printf("3. %s\n",j);
    printf("4. %d %s\n", e, d);
    printf("5. %s %s\n",h, i);
    /*
        keep in mind that scanf ignores everything after the space key, so if you
        want scanf to accept more than 1 word per input, you need to tell scanf 
        exactly how many words you are going to give it. the examples above illustrate
        that.
        so if you want scanf to accept 3 strings you do this:
        scanf("%s %s %s", a, b, c);
        likewise, if you want scanf to accept more than 1 number or even a mix of numbers 
        and strings, you have to tell scan through the format strings that you intend to do 
        that
        also, order matters with scanf as well, 
        scanf("%d %s", &a, b); - scanf expects an integer and a string in that order
        scanf("%s %d", c, &d); - scanf will expect a string and an integer in that order
    */
}
 
 |