From b5b0213c5d42ec55b6b8e903bd350654f3f02643 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Thu, 10 Nov 2011 19:56:32 -0500 Subject: [PATCH] Working on more example usages of io functions for ch25 --- ex24_iofunctions.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/ex24_iofunctions.c b/ex24_iofunctions.c index c20a7a7..0cd249c 100644 --- a/ex24_iofunctions.c +++ b/ex24_iofunctions.c @@ -2,16 +2,56 @@ #include "dbg.h" -int main(int argc, char *argv[]) +int fscanf_example01() { - printf("Reading from stdin: \n"); int a, b, rc; char c; + printf("Reading from stdin: \n> "); rc = fscanf(stdin, "%d %d %c", &a, &b, &c); check(rc == 3, "Failed to read from stdin."); printf("Read in: a=%d b=%d c=%c\n", a, b, c); + return 1; + +error: + return 0; +} + + +int fscanf_example02() +{ + int a, b, rc; + char c; + char filename[1024]; + FILE *fp; + + printf("Provide filename from which to inputs\n> "); + rc = fscanf(stdin, "%s", filename); + check(rc == 1, "Failed to read filename"); + fp = fopen(filename, "r"); + check(fp != NULL, "Failed to open file %s", filename); + + printf("Reading from \"%s\": \n", filename); + rc = fscanf(fp, "%d %d %c", &a, &b, &c); + check(rc == 3, "Failed to read from \"%s\".", filename); + + printf("Read in: a=%d b=%d c=%c\n", a, b, c); + rc = fclose(fp); + check(rc != EOF, "Failed to close file \"%s\"", filename); + + return 1; + +error: + return 0; +} + + +int main(int argc, char *argv[]) +{ + check(fscanf_example01() == 1, "Fail!"); + check(fscanf_example02() == 1, "Fail!"); + return 0; error: