首页 > 代码库 > 通过编写c语言程序,运行时实现打印另一个程序的源代码和行号
通过编写c语言程序,运行时实现打印另一个程序的源代码和行号
2017年6月1日程序编写说明:
1.实现行号的打印,实现代码的读取和输出,理解主函数中的参数含义。
2.对fgets函数理解不够
3.对return(1); return 0的含义理解不够
4.未实现页码的打印
1 /************************************************************************* 2 > File Name: my_print_program.c 3 > Author: Mr.Yang 4 > Purpose:自己编写程序实现打印一个程序的源代码和行号(即运行./my_print_program my_print_program.c即可打印源代码和行号,实现 5 功能和Linux中cat my_print_program.c功能类似) 6 > Created Time: 2017年06月01日 星期四 15时38分33秒 7 ************************************************************************/ 8 9 #include <stdio.h> 10 #include <stdlib.h> 11 12 /*实现从命令行读取可执行程序的路径和相关参数*/ 13 int main(int argc,char *argv[]) 14 { 15 char buffer[256]; 16 FILE *fp; 17 18 /*进行argc判断*/ 19 if(argc < 2) 20 { 21 puts("\n请按照标准命令输入,例如:\"./my_print_program test.c\",其中test.c为你需要打印的源代码!\n"); 22 return(1);//思考return (1) return 0有什么区别,它们实现的意义是什么?此处用return (1)可以实现程序执行if语句时不报段错误 23 } 24 25 /*打开代码文件*/ 26 fp = fopen(argv[1],"r"); 27 28 /*读取源代码*/ 29 int line = 1; 30 31 /*思考为什么fgets中中间参数为256,使用其它值可否,它代表着什么实际的意义?*/ 32 while(fgets(buffer,256,fp) != NULL) 33 { 34 /*调试能打印*/ 35 //puts("1"); 36 fprintf(stdout,"%4d:%s",line++,buffer); 37 } 38 39 fclose(fp); 40 41 return 0; 42 }
执行结果如下:
通过编写c语言程序,运行时实现打印另一个程序的源代码和行号
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。