|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 修改后:删除C源文件注释
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2816
人关注过本帖
标题:
修改后:删除C源文件注释
只看楼主
加入收藏
ICU
等 级:
业余侠客
威 望:
2
帖 子:92
专家分:268
注 册:2017-1-14
第
11
楼
收藏
得分:0
回复 8楼 renkejun1942
字符串以第一个"开头,结尾不能以分号或者回车作为结束的判断,必须以第二个非\"的"字符作为结束符
2017-02-09 12:10
举报帖子
使用道具
赠送鲜花
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
12
楼
收藏
得分:0
回复 10楼 九转星河
全部读取的确是最好的办法,但太恐怖了。
现在的修改版本就是这样。
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-02-09 12:45
举报帖子
使用道具
赠送鲜花
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
13
楼
收藏
得分:0
回复 11楼 ICU
是的,但是前几次我以双引号做为结束判断,总会出些小问题,所以一气之下干脆弄成以逗号或分号做结束判断。
现在的修改版是以双引号最结束,并且在遇到反斜杠的时候表示遇到的分号是一个转义字符。
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-02-09 12:47
举报帖子
使用道具
赠送鲜花
ICU
等 级:
业余侠客
威 望:
2
帖 子:92
专家分:268
注 册:2017-1-14
第
14
楼
收藏
得分:0
还是要用编译器对注释语句的判断方法,不能怕麻烦。
这里有一个小程序,实际意义不大,但值得思考,也可以用来适当放松一下:
#include<stdio.h>
int main()
{
char *a="#include<stdio.h>%cint main()%c{%cchar *a=%c%s%c;%cprintf(a,10,10,10,34,a,34,10,10,10);%creturn 0;%c}";
printf(a,10,10,10,34,a,34,10,10,10);
}
写程序要先确定程序框架和思路,不要把自己陷在杂乱的代码中。
就像斯诺克台球的精神,大布局为上,小技巧次之,累了喝杯水。
2017-02-09 12:58
举报帖子
使用道具
赠送鲜花
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
15
楼
收藏
得分:0
回复 14楼 ICU
编译器是怎么处理注释的?还真不知道。
我已经很放松了,我本来最近几天都没想动手修改的,只是今天在看《计算机科学导论》的时候,不知道看到什么了,然后莫名其妙觉得自己有思路了,然后才来动手修改。
[此贴子已经被作者于2017-2-9 13:04编辑过]
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-02-09 13:03
举报帖子
使用道具
赠送鲜花
ICU
等 级:
业余侠客
威 望:
2
帖 子:92
专家分:268
注 册:2017-1-14
第
16
楼
收藏
得分:0
基本假设是,源程序的语法完全符合。然后再分析注释的逻辑关系:
1.两个注释方式有没有优先级?实际情况是有优先级的
2.两种注释方式的结束符都是什么?注意//的结束符是回车;而/*是可以跨行的
3.字符串中的任何形如注释的字符都不能当成注释
所以根据以上规则,逻辑顺序可以为:
1.排除所有字符串;(允许跨行)
2.首先检测/**/格式的注释(允许跨行)
3.再检测//---【回车】格式的注释(当然不允许跨行)
2017-02-09 13:43
举报帖子
使用道具
赠送鲜花
ICU
等 级:
业余侠客
威 望:
2
帖 子:92
专家分:268
注 册:2017-1-14
第
17
楼
收藏
得分:0
中间看到你的程序中检查分号,这其实与注释是无关的。
2017-02-09 13:53
举报帖子
使用道具
赠送鲜花
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
18
楼
收藏
得分:0
回复 17楼 ICU
没有检查分号啊?你是不是看错了什么?
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-02-09 13:56
举报帖子
使用道具
赠送鲜花
ICU
等 级:
业余侠客
威 望:
2
帖 子:92
专家分:268
注 册:2017-1-14
第
19
楼
收藏
得分:0
你在5楼提到“这不是判断的问题,那是读取字符串的问题,因为读取是到分号作为结束。”看来我理解有问题
2017-02-09 14:07
举报帖子
使用道具
赠送鲜花
吹水佬
等 级:
版主
威 望:
451
帖 子:10610
专家分:43210
注 册:2014-5-20
第
20
楼
收藏
得分:7
3.再检测//---【回车】格式的注释(当然不允许跨行)
试试这个:
int i=0; //注释\
定义i\
并初始为0
2017-02-09 14:10
举报帖子
使用道具
赠送鲜花
23
2/3页
1
2
3
快速回复:
修改后:删除C源文件注释
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.071259 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved