void scanString(){ for (;;) { char buffer[82]; char *r = fgets(buffer, sizeof buffer, stdin); if(r != NULL){ insertascending(r); }else{ printf("You have reached the End of file\n"); break; } }; }
//scanNum(FILE *input, char *filename, char *progname) void scanNum(){ for (;;) { // Try to read a double number. Print an error message if a // word is not recognized as a number. Stop at end of file. double number; int scancount = scanf ("%lg", &number); if (scancount == EOF || scancount !=1) { printf ("EOF\n"); break; }else{ insertascending(number); } }; }
int main (int argc, char **argv) { bool debug=false; for(;;) { int opt = getopt(argc, argv, "d"); if(opt == EOF) break; switch(opt) { case 'd': debug=true; break; default: break; } } list *sorted = malloc (sizeof (struct list)); double number; int scancount = scanf("%lg", &number); while(scancount != EOF) { insertascending (sorted, number); scancount = scanf("%lg", &number); } for (node *curr = sorted->head; curr != NULL; curr = curr->link) { if(debug) printf ("%p: ", curr); printf ("%24.15g\n", curr->item); } while (sorted->head != NULL) { node *old = sorted->head; sorted->head = sorted->head->link; free (old); } return EXIT_SUCCESS; }