C语言打印图书目录实例 C语言二进制文件随机访问 C语言结构数组实例 C语言打印图书目录实例 //* book.c -- one-book inventory */ #include <stdio.h> #include <string.h> char * s_gets(char * st, int n); #define MAXTITL 41 /* maximum length of title + 1 */ #define MAXAUTL 31 /* maximum length of author's name + 1 */ struct book { /* structure template: tag is book */ char title[MAXTITL]; char author[MAXAUTL]; float value; }; /* end of structure template */ int main(void) { struct book library; /* declare library as a book variable */ printf("Please enter the book title.\n"); s_gets(library.title, MAXTITL); /* access to the title portion */ printf("Now enter the author.\n"); s_gets(library.author, MAXAUTL); printf("Now enter the value.\n"); scanf("%f", &library.value); printf("%s by %s: $%.2f\n",library.title, library.author, library.value); printf("%s: \"%s\" ($%.2f)\n", library.author, library.title, library.value); printf("Done.\n"); return 0; } char * s_gets(char * st, int n) { char * ret_val; char * find; ret_val = fgets(st, n, stdin); if (ret_val) { find = strchr(st, '\n'); // look for newline if (find) // if the address is not NULL, *find = '\0'; // place a null character there else while (getchar() != '\n') continue; // dispose of rest of line } return ret_val; } C语言二进制文件随机访问 C语言结构数组实例