#include #include "dbg.h" int fscanf_example01() { 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: return 1; }