[图] 提示:补充横线上的代码,请使用英文半角输入,不要...
提示:补充横线上的代码,请使用英文半角输入,不要留空格及其他不可见字符。 #include <stdio.h> #include <stdlib.h> #define LL 80 #define COL 2 #define CSIZE LL/COL-9 #define PL 50 #define MARGIN 3 char buff[COL][PL][CSIZE]; int ln[COL][PL]; int col, row, p; void printout() { int k, i, lpos, col, d,j; char line[LL]; for (k = 0; k < MARGIN; k++) putchar('\n'); for (k = 0; k < PL; k++) { for (i = 0; i < LL - 1; i++) { line[i] = ' '; for (lpos = 0, col = 0; col < COL; lpos += CSIZE + 9, col++) { d = ln[col][k]; p = lpos + 4; while (d > 0) { line[p--] = d % 10 + '0'; d /= 10; } for (p = lpos + 7, j= 0; j < CSIZE;j++) line[p++] = buff[col][k][j]; } } line[p] = '\0'; puts(line); } for (k = 0; k < MARGIN; k++) putchar('\n'); } void nextline() { while (p < CSIZE) buff[col][row][p++] = ' '; if (row >= PL) { if (col >= COL) { printout(); col = 0; } row = 0; } p = 0; } void dprint(char* fname) { FILE* fp; int lin, c; if ((fp = fopen(fname, "r")) == NULL)exit(-1); lin = 0; p = 0; col = 0; c = getc(fp); while (c != EOF) { ln[col][row] = ++lin; while (c != '\n' && c != EOF) { if (p >= CSIZE) { nextline(); ln[col][row] = 0; } __________________; c = getc(fp); } nextline(); if (c != EOF)c = getc(fp); } while (col != 0 || row != 0) { ln[col][row] = 0; nextline(); } fclose(fp); } int main(int argc, char** argv) { int f; for (f = 1; f < argc; f++) dprint(argv[f]); return 0; }