User Tools

Site Tools


Sidebar

projects

cci0 (due 20180822)
wcp1 (due 20180822)
dtr0 (due 20180830)
wcp2 (due 20180830)
sof0 (due 20180905)
wcp3 (due 20180905)
dow0 (due 20180912)
wcp4 (due 20180912)
mbe0 (due 20180919)
wcp5 (due 20180919)
cbf0 (due 20180926)
wcp6 (due 20180926)
cos0 (due 20181003)
wcp7 (due 20181003)
pnc0 (due 20181017)
wcp8 (due 20181017)
mbe1 (bonus; due 20181017)
pnc1 (due 20181031)
wcp9 (due 20181024)
gfo0 (due 20181031)
wcpA (due 20181031)
wcpB (due 20181107)
oop0 (due 20181114)
wcpC (due 20181115)
EoCE (due 20181213-172959)
haas:fall2018: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/fall2018/cprog/scanf_input.txt · Last modified: 2013/02/15 14:55 by 127.0.0.1