tab2spc
Borland C++ Compiler 5.5
tab2spc.c
#include
int main(int argc, char **argv) { FILE *pfileIn; FILE *pfileOut; int iTabstop; int iColumn; int iChar; if (argc != 4) { fprintf(stderr, "Usage: tab2spc tabstop file-in file-out\n"); return 1; } if (sscanf(argv[1], "%d", &iTabstop) != 1) { fprintf(stderr, "Error: tabstop\n"); return 1; } pfileIn = fopen(argv[2], "rt"); if (pfileIn == NULL) { fprintf(stderr, "Error: file-in\n"); return 1; } pfileOut = fopen(argv[3], "wt"); if (pfileOut == NULL) { fprintf(stderr, "Error: file-out\n"); return 1; } iColumn = 0; while ((iChar = fgetc(pfileIn)) != EOF) { if (iChar == '\t') { do { fputc(' ', pfileOut); iColumn++; } while (iColumn % iTabstop != 0); } else { fputc(iChar, pfileOut); iColumn++; if (iChar == '\n') { iColumn = 0; } } } fclose(pfileOut); fclose(pfileIn); return 0; }