社区
C语言
帖子详情
求助
llcnllcn
2003-05-28 10:17:36
用C++写一个程序,完成下述任务:从文件中读取一个C++源程序,把其中的注释部分去掉,并将去掉注释部分后的源程序写到另一个文件中,而注释部分用cout输出到屏幕上。(提示:输出结果时,可以不考虑源程序的格式。问题:C++原程序中的注释部分有两种情况,及/*...*/和//)
大虾们请帮忙搞定程序,重分酬谢!
...全文
96
4
打赏
收藏
求助
用C++写一个程序,完成下述任务:从文件中读取一个C++源程序,把其中的注释部分去掉,并将去掉注释部分后的源程序写到另一个文件中,而注释部分用cout输出到屏幕上。(提示:输出结果时,可以不考虑源程序的格式。问题:C++原程序中的注释部分有两种情况,及/*...*/和//) 大虾们请帮忙搞定程序,重分酬谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tuxw
2003-05-29
打赏
举报
回复
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
main()
{
ifstream fin( "d:\\temp\\c1.cpp" );
ofstream fout( "d:\\temp\\c2.cpp" );
string inBuf;
bool end = true; // 标记 /* */ 对是否结束
string::size_type first;
while( getline( fin, inBuf, '\n' ) ) // 每次处理一行
{
if(end) // 不在 /* */ 对中
{
first = inBuf.find_first_of( '/' );
if( first == string::npos && end )
{ // 连'/'都没有应该是语句了
fout << inBuf << endl;
continue;
}
while( first != string::npos )
{
if( inBuf[first+1] == '/' )
{ // 该行是双斜杠注释
fout << inBuf.substr( 0, first ) << endl; // 前半部分写入文件
cout << inBuf.substr( first ) << endl; // 后半部分输出
break;
}
else if( inBuf[first+1] == '*' )
{ // 开始 /* */ 对
fout << inBuf.substr( 0, first ) << endl;
cout << inBuf.substr( first ) << endl;
end = false;
}
first = inBuf.find( first, '/' );
}
}
else // 处理 /* 后面的部分,直到找到 */
{
first = inBuf.find( "*/" );
if( first != string::npos )
{ // 找到 */,
end = true;
cout << inBuf.substr(0, first+2) << endl;
// 这里没有考虑 */ 后还有语句或注释的情况
continue;
}
else
cout << inBuf << endl;
}
}
fin.close();
fout.close();
return 0;
}
煜知搬砖者
2003-05-29
打赏
举报
回复
hehe,学习。up
bm1408
2003-05-29
打赏
举报
回复
强人!
up!
adams_here
2003-05-28
打赏
举报
回复
可以这样:
一行行读入到一个CString类的变量中,寻找/*...*/和//,如果有//那么剩下的就全是注释,不要了;如果是/*,再找有没有*/,没有的话读下一行,再找,一直到找到为止,把这其中的内容都去掉。
呵呵,说的有些笼统。
springboot测试实例(JUnit 5 + SpringBootTest + MockMvc + H2 + Mockito).rar
springboot测试实例(JUnit 5 + SpringBootTest + MockMvc + H2 + Mockito).rar本文件为https://andyy.blog.csdn.net/article/details/160367956?spm=1011.2415.3001.5331博客所对应的源代码文件,适合新手小白入门学习
全域GEO智能推广系统 企业线上获客源码
全域GEO智能推广系统 企业线上获客源码 多平台排名优化搭建
工艺管道支架标准图集.rar
工艺管道支架标准图集.rar
单片式离合器(用于轿车、卡车等)solid edge.rar
单片式离合器(用于轿车、卡车等)solid edge.rar
FDTD方法中的完美匹配层(PML)研究(Matlab代码实现)
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章