`
leidiqiu
  • 浏览: 135099 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

去除源文件中的注释

阅读更多

第二次笔试遇到这个题了,没办法,虽然麻烦点,练习一下吧。可能还有没考虑全的情况。

 

要求:去除cpp源文件中的注释

输入:input.cpp

输出:output.cpp

 

// EX037.cpp : Defines the entry point for the console application.
//

/*
功能:去除注释
输入:input.cpp
输出:output.cpp
*/

#include "stdafx.h"
#include <stdio.h>
#include <string.h>


int main(int argc, char* argv[])
{
	FILE *fp1=fopen("input.cpp","r");
	FILE *fp2=fopen("output.cpp","w");

	char ch1='\0';
	char ch2='\0';

	while(EOF!=(ch2=fgetc(fp1))){
		if(ch2=='/'){
			if(ch1=='/'){
				while(EOF!=(ch2=fgetc(fp1))){
					if(ch2=='\n'){
						ch1='\0';
						ch2='\0';
						break;
					}
				}
			}else{
				ch1=ch2;
			}
		}else if(ch2=='*'){
			if(ch1=='/'){
				ch1='\0';
				while(EOF!=(ch2=fgetc(fp1))){
					if(ch2=='/'){
						if(ch1=='*'){
							ch1='\0';
							ch2='\0';
							break;
						}
					}else{
						ch1=ch2;
					}
				}

			}
		}else if(ch2=='\"'){
			fputc(ch2,fp2);
			printf("%c",ch2);
			while(EOF!=(ch2=fgetc(fp1))){
				fputc(ch2,fp2);
				printf("%c",ch2);
				if(ch2=='\"'){
					break;
				}

			}
		}else{
			if(ch1=='/'){
				fputc(ch1,fp2);
				printf("%c",ch1);
				ch1='\0';
			}
			printf("%c",ch2);
			fputc(ch2,fp2);
		}
	}

	fclose(fp1);
	fclose(fp2);
	return 0;
}

 

 

测试文件如下:

 

input.cpp

// EX037.cpp : Defines the entry point for the console application.
//

/*
功能:去除注释
输入:input.cpp
输出:output.cpp
*/

#include "stdafx.h"
#include <stdio.h>


int main(int argc, char* argv[])
{
	FILE *fp1=fopen("input.cpp","r");
	FILE *fp1=fopen("output.cpp","w");

	printf("/////");
	return 0;
}

 

 结果为:

 

output.cpp


#include "stdafx.h"
#include <stdio.h>


int main(int argc, char argv[])
{
	FILE fp1=fopen("input.cpp","r");
	FILE fp1=fopen("output.cpp","w");

	printf("/////");
	return 0;
}

 

分享到:
评论

相关推荐

    去除C++源文件注释

    总结起来,去除C++源文件注释是一项涉及文本解析的任务,可以通过编写特定的程序或使用现成的工具如RemoveComments.exe来完成。处理行注释和块注释需要对C++语法有深入了解,确保在保留代码逻辑的同时准确地识别和...

    源文件注释清理器(C#写的)

    标题中的“源文件注释清理器(C#写的)”指的是一个使用C#编程语言开发的工具,它的主要功能是清理源代码文件中的注释。在软件开发过程中,注释是用来解释代码功能、逻辑或提高代码可读性的文本,但在某些场景下,如...

    Python删除Java源文件中全部注释的实现方法

    本文实例讲述了Python删除Java源文件中全部注释的实现方法。分享给大家供大家参考,具体如下: 同事想删除一个Java项目中的全部注释,让我帮忙想想办法。 没找不到合适工具,就写了这个脚本,遍历指定目录,查找*....

    去掉代码注释的工具java \ c\c++、php等

    一些代码混淆工具,如ProGuard(Java)和UglifyJS(JavaScript),在混淆代码的同时也会去除注释,但这通常是在进行代码压缩和优化的过程中发生。 8. **版本控制系统策略** 在使用Git等版本控制系统时,可以考虑...

    去除源码注释(C#源码)

    你给别人源码的时候是不是由于某种原因不想让他看到注释?...它能去除各种源文件中的注释(预定义了几种),最重要是的它还可以针对不同的源来自定义各种格式。 如果您有什么意见,请来信探讨:xupc@163.com

    C/C++源程序注释的删除

    [/*] 删除源文件中的/**/注释" [//] 删除源文件中//注释" [/t] 将源文件中的TAB字符替换为空格,n为替换空格的个数" 其中的必须指定一个数值" 注:格式中的上述部分顺序不分先后,并且可以混合使用。

    java反编译工具以及去掉注释工具

    我们利用jd-gui反编译.classs代码之后,导出来的java源代码里面含有/**,其实这些标记是之前的java源码的注释,我们如何去掉这些标识了?需要利用jd-gui-cleaner.jar工具进行去掉,有需要的可以进行下载使用。 jd-...

    Linux中使用Shell脚本去掉源码注释的方法

    在Linux环境中,编写和执行Shell脚本是一种常见的自动化任务手段,尤其在处理源代码时,例如去除源码中的注释。本文将详细讲解如何利用Shell脚本来实现这一功能。 首先,一个基本的Shell脚本应该以`#!/bin/bash`...

    JAVA 去除注释的jar工具

    这个“JAVA 去除注释的jar工具”就是为此目的设计的,它能够帮助开发者从源代码或已编译的jar文件中移除注释。 首先,了解Java注释的种类。Java中的注释主要有三种类型:单行注释(//)、多行注释(/*...*/)和文档...

    软件注释去除工具

    本软件是本人开发的一款可以去除C语言代码工程中注释的小工具,仅需指定源文件路径和目标路径,自动将整个工程进行检索,克隆c语言工程,适用于pc软件和嵌入式软件开发者。 本工具主要用于将c代码中的注释去除 ...

    去除c++后面的注释的程序

    然而,在某些特定场景下,例如代码分析、编译优化或者特定的处理流程中,可能需要去除这些注释。本程序就是针对这种情况设计的,它能够自动处理C++源代码文件,移除其中的所有注释。 程序的核心功能是识别并剥离源...

    从 C/C++ 代码中删除注释:从 C/C++ 源文件中删除注释。 不做任何预处理。-matlab开发

    标题提到的是一个关于如何在不进行预处理的情况下,直接从C/C++源文件中移除注释的功能。这个功能可能在MATLAB开发环境中有用,因为MATLAB可以调用C/C++代码来加速计算,有时为了减少编译时间或者确保编译器不会误解...

    源代码注释去除工具

    源代码注释去除工具是一种专门用于清理编程语言源代码中注释部分的实用程序。它旨在提高代码的纯净度,特别是在处理大量代码时,如在准备发布或进行代码分析时。该工具支持多种编程语言,包括SQL脚本、C、C++以及C#...

    源代码注释清理器(清除C++源码中的所有注释内容,简单易用)

    1.功能:此程序能够去除 C++程序源文件中的所有注释,能识别“//”与“/**/”两种注释 2.用法:将待清理的 C++源代码 存为纯文本形式“test.txt”,将文本文件copy到CommentCleaner.exe同一个文件夹内,运行 ...

    源代码注释语句清除工具

    在软件开发过程中,注释是帮助程序员理解代码逻辑的重要组成部分,但在某些特定情况下,例如发布产品或保护知识产权时,可能需要去除这些注释。 使用该工具非常简单,只需要通过命令行界面输入"RemoveComment",...

    cstrip:C的缩减器。去除C空格和来自C系列源文件的注释

    携程一个简单的程序,用于从C系列源文件中去除空格和注释。 类似于Douglas Crockford的 。用法 cstrip 将结果打印到标准输出。例子 $ cstrip cc.c | wc -c10982$ cstrip c4.c | wc -c12731去做避免删除形成另一个...

    eclipse第二代代码行数、注释行数检查插件

    通过安装此插件,用户可以在Eclipse环境中直接查看各个源文件或整个项目的代码行数和注释行数统计,而无需手动进行计算。 插件的功能主要包括: 1. **代码行数统计**:插件能够准确地计算出源代码文件中的实际代码...

    去掉c或c++代码中的空行和注释的完整代码 vc6的工程

    在C++编程中,清理代码以去除空行和注释是一项常见的任务,特别是在代码整理、合并或优化时。本文将详细介绍如何实现这个功能,并结合给定的标题和描述,讲解如何在VC6环境下进行操作。 首先,让我们关注"str_del....

    使用正则去除php代码中的注释方法

    在PhpStorm中,我们可以按照以下步骤去除注释: 1. 按下`Ctrl+F`,在弹出的查找框中输入正则表达式`(/\/.*$)|(\/\*(.|\s)*?\*\/)`。 2. 按下`Ctrl+R`,在替换框中不输入任何内容。 3. 点击`Replace All`按钮,将...

    jd-gui反编译后注释清除工具

    图形界面操作方便,在java环境下双击jd-gui-cleaner.jar运行后,先点input,选择源文件文件夹,再点output,选择输出文件文件夹,最后点start运行,运行后会将所有源文件夹中的文件处理后保存到输出文件夹中,并处理...

Global site tag (gtag.js) - Google Analytics