Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Sam Breed
committed
Feb 27, 2012
1 parent
863fe33
commit fa7c506
Showing
2 changed files
with
72 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
#include <stdio.h> | ||
#include "dbg.h" | ||
|
||
#define MAX_DATA 100 | ||
|
||
|
||
typedef enum EyeColor { | ||
BLUE_EYES, GREEN_EYES, BROWN_EYES, | ||
BLACK_EYES, OTHER_EYES | ||
} EyeColor; | ||
|
||
const char *EYE_COLOR_NAMES[] = { | ||
"Blue", "Green", "Brown", "Black", "Other" | ||
}; | ||
|
||
typedef struct Person { | ||
int age; | ||
char first_name[MAX_DATA]; | ||
char last_name[MAX_DATA]; | ||
EyeColor eyes; | ||
float income; | ||
} Person; | ||
|
||
|
||
int main(int argc, char *argv[]) | ||
{ | ||
Person you = {.age = 0}; | ||
int i = 0; | ||
char *in = NULL; | ||
|
||
printf("Whats your first name? "); | ||
in = fgets(you.first_name, MAX_DATA-1, stdin); | ||
check(in != NULL, "Failed to read first name"); | ||
|
||
printf("Whats your last name? "); | ||
in = fgets(you.last_name, MAX_DATA-1, stdin); | ||
check(in != NULL, "Failed to read last name"); | ||
|
||
printf("How old are you? "); | ||
int rc = fscanf(stdin, "%d", &you.age); | ||
check(rc > 0, "You have to enter a number"); | ||
|
||
printf("What color are your eyes?"); | ||
for(i = 0; i <= OTHER_EYES; i++) { | ||
printf("%d) %s\n", i+1, EYE_COLOR_NAMES[i]); | ||
} | ||
printf("> "); | ||
|
||
int eyes = -1; | ||
rc = fscanf(stdin, "%d", &eyes); | ||
check(rc > 0, "You have to enter a number"); | ||
|
||
you.eyes = eyes - 1; | ||
check(you.eyes <= OTHER_EYES && you.eyes >= 0, "Do it right, that's not an option"); | ||
|
||
printf("How much do you make an hour? "); | ||
rc = fscanf(stdin, "%f", &you.income); | ||
check(rc > 0, "Enter a floating point number"); | ||
|
||
printf("-----RESULTS---->\n"); | ||
|
||
printf("First Name: %s", you.first_name); | ||
printf("Last Name: %s", you.last_name); | ||
printf("Age: %d\n", you.age); | ||
printf("Eyes: %s\n", EYE_COLOR_NAMES[you.eyes]); | ||
printf("Income: %f\n", you.income); | ||
|
||
return 0; | ||
error: | ||
return -1; | ||
} |