home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #define QUEST_FILE "/home/rosemary/year2/nrp1/pub/questions"
- #define ANS_FILE "/home/rosemary/year2/nrp1/pub/answers"
-
- main(argc,argv)
- int argc;
- char **argv;
- {
- switch(argc) {
- case 1: return(ask(QUEST_FILE, 0));
- break;
- case 2: if (!strcmp(argv[1], "-a")) {
- fprintf(stderr, "No answer number!\n");
- return(-1);
- } else return(ask(QUEST_FILE, atoi(argv[1])));
- break;
- default: if (!strcmp(argv[1], "-a")) {
- return(ask(ANS_FILE, atoi(argv[2])));
- break;
- } else return(ask(QUEST_FILE, atoi(argv[1])));
- }
- }
-
- ask(file, q)
- char *file;
- int q;
- {
-
- int count = 0, numquest, num;
- int blob;
- FILE *InFile;
-
- if (!(InFile = fopen(file, "r"))) {
- fprintf(stderr, "Can't open %s\n", file);
- exit(-1);
- }
-
- fscanf(InFile, "%d", &numquest); /* no. of questions */
-
- if (q == 0) {
- srandom(getpid());
- num = random() % numquest + 1;
- } else
- num = q;
-
- if ((num < 1) || (num > numquest)) {
- fprintf(stderr, "Invalid question number\n");
- exit(-1);
- }
-
- while (count < num)
- if (getc(InFile) == 1) count++ ;
-
- while (((blob = getc(InFile)) != 1) && (blob != EOF))
- printf("%c", blob);
-
- fclose(InFile);
-
- return(num);
- }
-