提高项目31.2-将代码中的花括号换行输出
来源:互联网 发布:艾克里里淘宝店链接 编辑:程序博客网 时间:2024/04/25 15:15
任务和代码:读入一个C程序,使程序中的所有左花括号“{”和右花括号“}”都单独占一行,新程序保存到另一个.c文件中,并在屏幕上显示处理过的程序,显示时加上行号
/*文件名:main.c作者:小风景完成日期:2016.7.12问题描述: 读入一个C程序,使程序中的所有左花括号“{”和右花括号“}”都单独占一行,新程序保存到另一个.c文件中,并在屏幕上显示处理过的程序,显示时加上行号程序输出:*/#include <stdio.h>#include <string.h>#include <stdlib.h>void translateformat(char *source,char *destination);void showprogram(char *source);int main(){ char source[20] = "source.c"; char targrt[20] = "target.c"; translateformat(source,targrt); printf("经过处理后的程序:\n"); showprogram(targrt); return 0;}void translateformat(char *source,char *destination){ char info = 0; char pre = '\0'; FILE *sourfp = NULL; FILE *destfp = NULL; if((sourfp = fopen(source,"r")) == NULL) { printf("open %s file error!\n",source); exit(1); } if((destfp = fopen(destination,"w")) == NULL) { printf("open %s file error!\n",destination); exit(1); } while((info = fgetc(sourfp)) != EOF) { if((info == '{' || info == '}') && pre != '\n') //前后都换行 { fputc('\n',destfp); } if((pre == '{'|| pre == '}') && info != '\n') { fputc('\n',destfp); } fputc(info,destfp); pre = info; } fclose(sourfp); fclose(destfp);}void showprogram(char *source){ int number = 0; char info[1024] = {0}; FILE *fp = NULL; if((fp = fopen(source,"r")) == NULL) { printf("open %s file error!\n",source); exit(1); } while(fgets(info,sizeof(info),fp)) { number++; printf("%d\t%s",number,info); }}
程序运行结果:
总结:对于将括号独占一行需要注意花括号的特性,{}字符前后都有回车符,更具这个特性,在while循环中判定,当遇到花括号,判断前后是否为回车,如果不是则加上。
0 0
- 提高项目31.2-将代码中的花括号换行输出
- 提高项目31.3-将代码中的m-n行注释
- 如何用C#将输出到文本文件中的内容换行?
- 第十四周项目4-2:IDE花括号换行机制
- spark版WordCount(Java),将输出结果排序,并去除输出文件中的括号。
- 将括号中的内容提取
- 将括号中的内容提取
- C#中的换行代码
- Findbug在项目中的运用--提高代码质量
- 提高项目31-检测代码中的main函数
- 提高项目31.1-统计代码中的if、while、 for字符串
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- 判断日期
- HDU 3018 一笔画问题
- IOS Dev Intro - Block
- android中的字符长度
- 【2012.03.3普及组】寻找星座
- 提高项目31.2-将代码中的花括号换行输出
- java面向对象
- hibernate -- HQL语句总结
- ActiveMQ学习(三)--结合Spring的Demo
- 另一种阶乘问题
- nginx 负载均横
- 被人画是怎样一种体验?
- iconcls引用
- uwaGC调用