C++第16周项目4 -处理C++源代码 - (2)花括号单独占一行
来源:互联网 发布:淘宝的等级划分 编辑:程序博客网 时间:2024/04/30 04:37
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/9078413
【项目4】写处理C++源代码的程序
(2)读入一个C++程序,使程序中的所有左花括号“{”和右花括号“}”都单独占一行,新程序保存到另一个.cpp文件中,并在屏幕上显示处理过的程序,显示时加上行号。
参考解答:
#include <fstream>#include<iostream>//#include<string>#include<cstdlib>using namespace std;void outprogram(char *filename);int main( ){ char ch1,ch2; //将文件中的数据读入到字符数组中 ifstream sourceFile("source.cpp",ios::in); //以输入的方式打开文件 if(!sourceFile) //测试是否成功打开 { cerr<<"source code read error!"<<endl; exit(1); } ofstream outFile("newsource.cpp",ios::out); //以输出的方式打开文件 if(!outFile) //测试是否成功打开 { cerr<<"new source code write error!"<<endl; exit(1); } ch1='\0'; while(!sourceFile.eof()) { sourceFile.get(ch2); //读到了花括号,且前一个符号不是换行,应该加入一个换行 if((ch2=='{'||ch2=='}')&&(ch1!='\n')) outFile.put('\n'); else //当前读到的不是换行,但前一个是花括号,此时也该加 if((ch1=='{'||ch1=='}')&&(ch2!='\n')) outFile.put('\n'); outFile.put(ch2); //输出当前读入的符号 ch1=ch2; } outFile.close(); sourceFile.close(); cout<<"经过处理后的源程序是:"<<endl; outprogram("newsource.cpp"); return 0;}void outprogram(char *filename){ char line[256]; int n = 1; ifstream inFile(filename, ios::in); //以输入的方式打开文件 if(!inFile) //测试是否成功打开 { cerr<<"file open error!"<<endl; exit(1); } while (!inFile.eof()) { inFile.getline(line,255,'\n'); cout<<n<<'\t'<<line<<endl; n++; } inFile.close(); return;}
- C++第16周项目4 -处理C++源代码 - (2)花括号单独占一行
- 第16周项目5-编程处理C++代码(花括号单独占一行且加上行号)
- 花括号单独占一行
- 第十六周 项目五:编程处理C++源代码(5.2:使花括号独占一行)
- c语言源文件大括号独占一行处理
- 第十六周项目五 (mark)编程处理C 源代码
- C++第16周项目4 -处理C++源代码 - (1)有没有main函数?
- C++第16周项目4 -处理C++源代码 - (3)自动加注释
- 第16周项目5(1)-编程处理C++源代码
- 第14周项目4-处理C++源代码的程序
- 验证花括号是否正确出现的c程序源代码
- C#Cookie处理源代码
- 第5周 项目3 - 括号的匹配(2)
- 第14周 【项目4 - 处理C++源代码的程序】(1)
- 【c语言】从标准输入读取c源代码,并验证所有花括号都成对出现
- 第7周项目4--星号图(c)
- C#--第2周实验--创建一个控制台应用--输入并输出一行字符串
- C#excel数据导入DataGridView第一行数据变成标题处理方法
- 基础语法
- 二叉树分层遍历(递归以及非递归的实现)
- apt
- Cocos2d-x中与属性相关的宏
- 雅虎的收购战略
- C++第16周项目4 -处理C++源代码 - (2)花括号单独占一行
- Java中serialVersionUID的解释
- 根据文件名中含有的scriptid更新数据库中的对应的Version字段
- OIT(Order-independent Transparent)顺序无关的透明
- 第十一次c语言上机实践操作
- 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
- Dataflow Diagram(DFD)画法
- 【JS】输入框提示功能
- Spring的JDBCTemplate