Annotation of freem/examples/libfreem/grades/grades.c, revision 1.1.1.1
1.1 snw 1: #include <stdio.h>
2: #include <string.h>
3: #include <stdlib.h>
4:
5: #include <freem.h>
6:
7: int main(int argc, char **argv)
8: {
9: char buf[256];
10: double student_grade;
11: int student_count;
12:
13: freem_ref_t *ref;
14:
15: /* initialize libfreem; use the USER namespace */
16: freem_init ("USER");
17:
18: if ((ref = (freem_ref_t *) malloc (sizeof (freem_ref_t))) == NULL) {
19: fprintf (stderr, "Memory allocation error.\n");
20:
21: exit (1);
22: }
23:
24: ref->reftype = MREF_RT_GLOBAL;
25: strcpy (ref->name, "grades");
26:
27: while (ref->subscript_count < 256) {
28:
29: ref->subscript_count = 0;
30:
31: fprintf (stdout, "Enter student name, or \"exit\" to quit: ");
32: fgets (buf, 255, stdin);
33:
34: buf[strcspn(buf, "\n")] = 0;
35:
36: if (strcmp (buf, "exit") == 0) break;
37:
38: student_count++;
39:
40: strncpy (ref->subscripts[ref->subscript_count++], buf, 254);
41:
42: fprintf (stdout, "\nEnter student grade: ");
43: fgets (buf, 255, stdin);
44:
45: buf[strcspn(buf, "\n")] = 0;
46:
47: printf("buf = '%s'\n", buf);
48:
49: strncpy (ref->value, buf, 254);
50:
51: printf("ref->value = '%s'\n", ref->value);
52:
53: freem_set (ref);
54:
55: }
56:
57: fprintf (stdout, "\nYou have entered %d student grades:\n\n", student_count);
58:
59: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>