C语言如何读取HTML文件的问题

toypeng 2008-02-25 11:19:54
我是个C的新手,最近要作个东西,是关于用C语言读取HTML文件并修改其中几处加了标记的地方。我在网上找了半天,有相关的例子,但和我想要的又差异很大,而且要求比较紧。想找个高手帮忙分析下,至少给我想个思路,如果可行,我就要提交方案了。先谢个!下面是我在网上找的一段代码:char htmfilename[50] = {"abc.htm"};
if((stream = fopen( htmfilename, "r" )) != NULL ){
while( fgets( line, 100, stream ) != NULL){
printf( "%s", line);
}
fclose( stream );
}
而且C语言书上关于文件读取那里我也看过了,但还是不敢肯定是否能实现我要的功能。请高手指点。
...全文
1519 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
dodocjt 2011-02-18
  • 打赏
  • 举报
回复
用CGIC写cgi就是这样做的,不过都这么多年了,估计早解决了吧。。。
lzpxiaoping 2008-07-22
  • 打赏
  • 举报
回复
我也需要做这方面的任务,但是也不太明白怎么做。继续关注。
toypeng 2008-03-05
  • 打赏
  • 举报
回复
怎么没人来了
lzfish 2008-03-03
  • 打赏
  • 举报
回复
linux/unix下perl,awk处理文本文件是强项。
windows下也可以用vbs。
感觉可以用脚本语言,不一定要用C。
如上,正则替换
toypeng 2008-03-03
  • 打赏
  • 举报
回复
上面是我发的HTML页面代码,借用下百度首页的,因为代码比较少,看起来不费时间。呵呵。
我要实现的功能就是将其中“新闻”“网页”“贴吧”“知道”“MP3”“图片”这些字全部替换,具体替换成什么字,替换成几个字,都要看具体情况。也就是说要替换的字和原来的长度不一定相同。
比如,我现在要依次替换成“美女图片”“最新MP3排行”“百度知道”“体育贴吧”“中文网页”“娱乐新闻”,该如何实现?
toypeng 2008-03-03
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=gb2312">
<title>百度一下,你就知道 </title>
<style>
body{margin:4px 0}
p{margin:0;padding:0}
img{border:0}
td,p,
#u{font-size:12px}#b,#u,#l td,
a{font-family:arial}
#kw{font:16px Verdana;height:1.78em;padding-top:2px}
#b{height:30px;padding-top:4px}#b,
#b a{color:#77c;font-size:12px}
#u{padding-right:10px;line-height:19px;text-align:right;margin-bottom:3px !important;margin-bottom:10px}
#sb{height:2em;width:5.6em}#km{height:50px}
#km a{font-family:宋体}#l{margin-bottom:5px}
#m{margin-left:100px;width:22.1em;text-align:center}p,
#b,table{width:600px;border:0}#sb,#km,#l,
#m{font-size:14px}#m a,
#m b{margin-right:1.14em}a{color:#00c}a:active{color:#f60}
</style>
</head>
<body>
<div id=u>
</div>
<center>
<a href=http://hi.baidu.com/baidu target=_blank>
<img src=http://www.baidu.com/img/logo.gif width=174 height=59 alt="点此进入 百度空间">
</a><br><br><br><br>
<table cellpadding=0 cellspacing=0 id=l>
<tr>
<td align=left>
<div id=m>
<a onclick=s(this) href=http://news.baidu.com>新 闻</a><b>网 页</b>
<a onclick=s(this) href=http://tieba.baidu.com>贴 吧</a>
<a onclick=s(this) href=http://zhidao.baidu.com>知 道</a>
<a onclick=s(this) href=http://mp3.baidu.com>MP3</a>
<a onclick=s(this) href=http://image.baidu.com>图 片</a>
</div>
</td></tr>
</table>
<table cellpadding=0 cellspacing=0>
<tr valign=top>
<td width=92></td>
<td height=62 nowrap>
<form name=f action=/s>
<input type=text name=wd id=kw size=36 maxlength=100>
<script>
var w=document.f.wd;w.focus();
document.getElementById("u").innerHTML='<a href="http://passport.baidu.com/?login&tpl=mn&u='+escape(location.href)+'">登录</a>';
function s(o){if(w.value.length>0){var h=o.href;
var q=encodeURIComponent(w.value);
if(h.indexOf("q=")!=-1){o.href=h.replace(new RegExp("q=[^&$]*"),"q="+q)}else{o.href+="?q="+q}}};
(function(){if(new RegExp("q=([^&]+)").test(location.search)){w.value=decodeURIComponent(RegExp.$1)}})()
</script>
<input type=hidden name=cl value=3> <input type=submit value=百度一下 id=sb>
<br><br>
</form>
</td><td width=100><a href=/search/jiqiao.html>帮助</a><br>
<a href=/gaoji/advanced.html>高级</a>
</td>
</tr>
</table>

<p id=km> <a href=http://hi.baidu.com>空间</a> | <a href=http://www.baidu.com/more>更多>></a></p>
<p style=height:60px></p>
<p style=height:30px>
<a onClick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.baidu.com')" href=http://utility.baidu.com/traf/click.php?id=215&url=http://www.baidu.com>把百度设为首页</a></p>
<p style=height:14px><a href=http://jingjia.baidu.com>企业推广</a> |
<a href=http://top.baidu.com>搜索风云榜</a> |
<a href=/home.html>关于百度</a> |
<a href=http://ir.baidu.com>About Baidu</a></p>
<p id=b>©2008 Baidu <a href=http://www.baidu.com/duty>使用百度前必读</a>
<a href=http://www.miibeian.gov.cn target=_blank>京ICP证030173号</a>
<a href=http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001092500412><img src=http://gimg.baidu.com/img/gs.gif></a></p>
</center>
</body>
</html><!--4eca38de351397c2-->
Qlin 2008-03-03
  • 打赏
  • 举报
回复
我觉得用正则替换应该比较好.
DiligencyMan 2008-02-29
  • 打赏
  • 举报
回复
玩笑开大了吧,c语言还可以这样弄?
shaoze5 2008-02-29
  • 打赏
  • 举报
回复
你可以把THML文件直接放到这里啊,选择代码格式中的html,这样看起来也比较清楚的。
toypeng 2008-02-29
  • 打赏
  • 举报
回复
coldwindtang  如果来了可以再回复下 我最近就要开始了 我先找个类似的页面给你也好
toypeng 2008-02-29
  • 打赏
  • 举报
回复
怎么没人来了 
xxmv99 2008-02-27
  • 打赏
  • 举报
回复
受教

mark html c
toypeng 2008-02-27
  • 打赏
  • 举报
回复
先多谢coldwindtang!不过我的页面是日文的,不知道你的系统能不能支持正常显示?如果不行,我可以给你找个类似的页面代替,只要实现相应的功能就行。如果可以,我就直接把页面发给你。在线等回复。
toypeng 2008-02-27
  • 打赏
  • 举报
回复
貌似coldwindtang的作息时间和大家有些出入啊。。。难道你那里的时差和我们这里很大么 嘿嘿 夜猫子一个
唐巧 2008-02-26
  • 打赏
  • 举报
回复
楼主可以把要求及html文件的内容贴出来。我可以帮你写出对应的代码。
没有具体要求,也没办法给你示例代码。
shaoze5 2008-02-26
  • 打赏
  • 举报
回复
1.打开html文件和一个temp文件。
2.读html文件到一个buffer中(如果html文件读到末尾就跳转到6)
3.处理这个buffer
4.将处理后的buffer写入到temp文件中
5.goto 2
6.关闭两个文件
大概就这个样子吧
toypeng 2008-02-26
  • 打赏
  • 举报
回复
多谢robot1314的提醒。那我现在还有问题就是使用临时文件进行更新?我怎么查不到相关的内容?能不能说的具体点。
另外,帖子已经加分了,希望各位高手在帮下忙,给点思路。分数我会相应的送给大家的。
chlaws 2008-02-26
  • 打赏
  • 举报
回复
读取代码?
不难吧,随便怎么的能读出来,
修改,查找下当前要修改的位置,
再改动下
唐巧 2008-02-26
  • 打赏
  • 举报
回复
应该就是字符串处理的问题,具体的做法就是读入,然后分析,最后输出替换后的文件。
分析需要一些字符串的操作,比如查找和匹配等。

楼主可以把要求及html文件的内容贴出来。我可以帮你写出对应的代码。
没有具体要求,也没办法给你示例代码。
michney 2008-02-26
  • 打赏
  • 举报
回复
1.首先把html读入内存
2.分析字符串可以用regex,strstr或者自己写KMP
3.替换replace
4.写回
加载更多回复(10)

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧