User Tools

Site Tools


Sidebar

projects

cci0 (due 20170826)
wcp1 (due 20170826)
dtr0 (due 20170830)
wcp2 (due 20170902)
sof0 (due 20170906)
wcp3 (due 20170909)
dow0 (due 20170913)
wcp4 (due 20170916)
mbe0 (due 20170920)
wcp5 (due 20170923)
cbf0 (due 20170927)
wcp6 (due 20170930)
cos0 (due 20171004)
wcp7 (due 20171007)
pnc0 [metrics] (due 20171018)
mbe1 (BONUS – due 20171018)
wcp8 (due 20171021)
pnc1 [metrics] (due 20171025)
wcp9 (due 20171028)
gfo0 (due 20171101)
wcpA (due 20171104)
gfo1 (due 20171108)
wcpB (due 20171111)
gfo2 (due 20171115)
wcpC (due 20171118)
haas:fall2017:cprog:scanf_input

Table of Contents

scanf() input

1
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int a, *b;
    short int c;
    char d;
    float e;
 
    b = (int *) malloc (sizeof(int) * 1);
 
    fprintf(stdout, "Enter an integer: ");
    fscanf(stdin, "%u", &a);
 
    fprintf(stdout, "Enter another integer: ");
    fscanf(stdin, "%u", b); // why don't we need & in this case?
 
    fprintf(stdout, "Enter a short int: ");
    fscanf(stdin, "%hu", &c);
 
    fprintf(stdout, "Enter a char: ");
    fscanf(stdin, "%c", &d);
 
    fprintf(stdout, "Enter a float value: ");
    fscanf(stdin, "%f", &e);
 
    fprintf("Your ints are: %u and %u\n", a, *b);
    fprintf("Your short int is: %hu\n", c);
    fprintf("Your char is: '%c'\n", d);
    fprintf("Your float (trimmed at 2 decimal places) is: %.2f\n", e);
 
    return(0);
}

Questions

  • Why doesn't the input of b in fscanf() need a preceding &?
  • Does the program work properly?
    • If not, what seems to be going wrong?
    • How would you figure out where the problem seems to be manifesting?
    • How could you make it right?

Hints

  • Try moving the last fprintf() earlier in the list of final fprintf()'s. Does this make a difference? If so, WHY?
haas/fall2017/cprog/scanf_input.txt · Last modified: 2013/02/15 14:55 by 127.0.0.1