任务和代码:改造上面的程序,若命令行中给出多个文件名,逐个加行号显示文件内容
/*
文件名:main.c
作者:小风景
完成日期:2016.7.21
问题描述:设计一个程序,读取命令行中给出的文件,将其内容在屏幕上显示出来,并在其行首显示行号(行号从1开始);
改造上面的程序,若命令行中给出多个文件名,逐个加行号显示文件内容
程序输出:
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
int i = 1;
int number = 0;
char buffer[1024] = {0};
FILE *fp = NULL;
if(argc < 2) //判断传入参数必须大于两个
{
printf("Usage: %s textfile \n",argv[0]);
exit(1);
}
while(i < argc)
{
if((fp = fopen(argv[i],"r")) == NULL) //打开文件
{
printf("open %s file error!\n",argv[1]);
exit(1);
}
while(fgets(buffer,sizeof(buffer),fp)) //读取文件内容
{
number++;
printf("%3d: %s",number,buffer);
memset(buffer,0,sizeof(buffer)); //使用完buffer后第二次使用需要初始化
}
fclose(fp);
printf("\n\n");
i++;
}
return 0;
}
程序运行结果: