« 2006年08月 | 首页 | 2006年10月 »

2006年09月25日

学用cpp完成文章中单词出现频率的计数

好久不写代码感觉自己都笨死了,是帮朋友作的一个小作业,放在自己的log里作个纪念吧。静下心来学习cpp和stl都是两年前的事情了。翻了好一会书才写出来的。看来自己真的是老了。

这个东西读取aaa.txt一篇英文文档,计算每个单词出现的次数。按频率由高至低打印出来。算法比较笨。

g++ (GCC) 3.3.6 slackware linux 10.2下通过。因为html转义的问题,提供cpp文件下载 下载

#include <iostream> #include <fstream> #include <string> #include <map> #include <algorithm> #include <ctype.h> using namespace std; int main() { map <string, int>words; int sum=0; ifstream infile("aaa.txt"); if(!infile) { cout <<"Can't find the input file aaa.txt"; return 1; } else { string tword; while(infile>>tword) { string word; for(string::const_iterator it=tword.begin();it!=tword.end();it++) { if(!ispunct(*it)) { word+=*it; } } if(word.size()!=0) { words[word]++; sum++; } } } map<string, int>::iterator it=words.begin(); int max=0; for(;it!=words.end();++it) { if(it->second>max) max=it->second; } for(int i=max;i>=1;i--)
{ for(it=words.begin();it!=words.end();++it)
{ if(it->second==i) cout <<"Word: " <<it->first <<" appears: " <<it->second <<" times." <<endl; } } cout << "Total: " << sum << "\n"; return 0; }

2006年09月23日

跨平台的录屏软件vnc2swf

在windows下录屏有很多的选择,但在linux下好像不是很多,听说有一些商业的版本。但在linuxquestions找到了这个免费的工具,有c和python两个版本,是通过vnc server来工作的。vnc在一般的发行版本上都有相应的软件包,python就更不用说了。我在SLED 10上装了一个,录xgl给朋友看一下。效果还可以,虽然有一点卡。
vnc2swf的项目主页在这里。
http://www.unixuser.org/~euske/vnc2swf/index.html

2006年09月18日

勿忘国耻振兴中华

  外面响起刺耳的警报声,想想我们这些年轻人是不是活的越来越自我了,因而忘却了本该有的责任感和奋发向上的精神。

  历史不应该被忘却的同时,青年人更不要忘记做为一个社会人的价值。

  九一八的警报让我清醒许多。

这半生

  未及而立,究吾之前半生功过未免过于滑稽,可人生韶华之年已近了了;心力斑驳,有如肌肤之无有泽光;萧寥意气,似时光凋落的衣裳。踏一路风雨,笔录屐痕定会误了行程,但终究不忍任径流冲刷而去,择其一二,慰我余生。

  少年时,家贫,多飘摇不安。母亲坚强,守得吾姊弟成人,盼至父亲身康体健,孝出祖父安乐晚年。而如今母亲依旧守着那片乡土,用善良祈求着良善润泽她的一双儿女。

  吾生来迂钝,不解浮世真意,终日仰视答疑解惑之诸君,静临板书于纸;驽信先生皆不食烟火,直至多年后谈笑推杯才叹于逝去神秘的美丽。


未完待续...最近没心情写完它