/*
Introduction to accessing data.
*/
#include <stdio.h>
#define false 0
#define true 1
main()
{
/* Declaration statements */
short age=0, pds=0, single_tmp=0;
double days, grams;
char name[16], adrs[24] , check;
int single; /* Really logical/boolean */
char *TEMP;
clrscr();
printf("C22.C -> This program provides examples of how to read in data.\n");
do
{
printf("\nEnter Age :");
scanf("%hd", &age);
printf("\nEnter weight in pounds :");
scanf("%hd", &pds);
printf("\nEnter Name :");
getchar();
fgets(name, 16, stdin);
TEMP = strchr(name, '\n'); /* To get rid of the \n at */
if (TEMP != NULL) { /* the end of the "name" */
*TEMP = 0; /* which can produce format */
ungetc('\n', stdin); /* errors when printing data */
}
printf("\nEnter Address:");
getchar();
fgets(adrs, 24, stdin);
TEMP = strchr(adrs, '\n');
if (TEMP != NULL)
*TEMP = 0;
/*
Since we cannot read in a boolean from the keyboard
we read an integer 1 or 0 and convert to boolean.
*/
printf("\nSingle? (0/1) : ");
scanf("%hd", &single_tmp); /* Get 1 or 0 from user */
getchar();
if (single_tmp == 0) /* Depending on user's */
single = false; /* entry, single will */
if (single_tmp == 1) /* take the value true */
single = true; /* or false. */
/* Assignment statements */
grams = pds * 454.0;
days = age * 365.25;
/* Print data */
printf("Name : %s\nAddress: %s\n", name, adrs);
printf("Age : %d\nDays : %8.2f\n", age, days);
printf("PDS : %d\nGRAMS : %7.1f\n", pds, grams);
printf("Single : ");
puts(single ? " TRUE" : "FALSE");
printf("Do you want to continue ? (y/n) :\t");
check=getchar();
check=toupper(check); /* Capital letter conversion */
clrscr(); /* Clear screen before new entry */
}while(check != 'N'); /* End of while loop if check != 'N' */
return(0);
}
/* End of Program C22 */
/*
INPUT :
56 160 Baldy 22 Acacia Ave.OUTPUT :
C22.C -> This program provides examples of how to read in data. Enter Age : 56 Enter PDS : 160 Enter Name : Baldy Enter Address: 22 Acacia Ave. Single? (0/1) : n Name : Baldy Address: 22 Acacia Ave. Age : 56 Days : 20454.00 PDS : 160 GRAMS : 72640.0 Single : FALSE Do you want to continue ? (y/n) :n */
Last modified: 21/07/97