/* readline.c */ #define MAXLINESIZE 256 #include #include #include #include #include #define LF 0x0a #define CR 0x0d __cdecl main (argc, argv) int argc; char *argv[]; { char line[MAXLINESIZE]; char *prompt = ""; char *formats = "%s\n"; char *formatc = "%c\n"; char inputchar; FILE *file = stdout; int argcount = 0; int getline = 1; while (++argcount < argc) { if (!(_stricmp(argv[argcount], "-p"))) { if (++argcount != argc) { prompt = argv[argcount]; } } else if (!(_stricmp(argv[argcount], "-f"))) { if (++argcount != argc) { if ((file = fopen(argv[argcount], "a")) == NULL) { printf("Could not open %s\n", argv[argcount]); exit(1); } } } else if (!(_stricmp(argv[argcount], "-t"))) { if (++argcount != argc) { formats = argv[argcount]; } } else if (!(_stricmp(argv[argcount], "-c"))) { getline = 0; } else { printf("usage: readline [-c] [-p prompt] [-f file] [-t formats]\n"); exit(2); } } printf("%s", prompt); if (getline == 1) gets(line); else { inputchar = (char)_getch(); _putch(inputchar); _putch(LF); _putch(CR); } if (getline == 1) fprintf(file, formats, line); else fprintf(file, formatc, inputchar); return 0; }