-
这几日感觉一直很忙,周末两天把教务处委托的事情搞定了,又在为着学校ACM程序设计大赛做准备,每天都有忙不完的事情。已经堆了好几篇报告了,希望能在今天晚上搞定。前两日左眼皮一直在跳,听说过这样一句话:“左眼跳,要进财 ”,我还一直在想,这几天有什么财可以进的,不过今日还真是进了点小财,虽然不多,不过还是应了这句话。前几日支付宝里莫名其妙打进了一百多块钱,交易记录上只有一个备注为奖金,其他什么都没有,还以为是不是那个转账错误了,到了我的账上,今日才收到阿里联盟的信件,才知道是Yahoo推广的收入。等了一个月,今日终于到中国银行把那张放了一个多月的支票办理了托收手续,交了25.00RMB的手续费,还要等上20多天才能拿到RMB,如果人民币继续升值,可能又要损失几块钱了。不过也无所谓,能维持网站的运作就已经很不错了。
傍晚,无意中又打开了MSN Spaces, 发现速度快多了,已经有好几个月没有更新那里了。现在速度提高了,MSN Spaces也是一个很好的去处,我想这也是行业竞争的结果。MSN Spaces唯一的好处是与MSN Messeger的结合,是一个不错的交友平台,虽然My Space在国内已经开通,但是使用起来总是觉得不那么顺手,最终要的是要求的带宽较高,随便打开一个人的主页,就有大量的视频、音乐、图片,半天才能出来,那里受得了!
-
周末,学院组织去了一趟老君山,主要目的是爬山,也算是缓解多日紧张的生活。老君山就在绵阳附近,据说刚刚发现这里有最古老的火药发明遗址。也没有期待能看到遗址,只是希望通过周末能缓解一下。早上8点从学校出发,龙门上了绵广高速。天气很好,不得带上墨镜 ,高速两边都是很平淡的盆地农村景观。45分钟后,到了小溪坝出口,下了高速,绕过小溪坝镇和重华镇,再45分钟,便到了山门。还好,门票不是很贵,25元/人。
这里的山很高,且很陡,已经没了盆地的痕迹。接待处只有了了几栋房子,人不多。看得出来,这里刚开发不久,还没多少人来游览。 这样的地方更接近自然,没有多少人为自然的迹象。
我们选择的是一条较为难走的线路,共计9.8公里,其中一半为以开发的线路,路况较好,水泥路面。另一半则是正在开发中的线路,具宣传手册说是古时候运送火药原材料的栈道。
选好路线后就出发了。开始的2.1公里还好,在峡谷中沿小溪而上,水泥路面,风景一般,只是少了些水。5月的天,有些热,满山翠绿。
紧接着便是走栈道了。这是一条正在开发的线路,没有水泥路面, 路上零星有人走过的痕迹。这条路沿着陡峭的山腰望上爬。路况较差,有些危险,有些地方几乎没有路。不过这样的路对我来说并不陌生,老家经常都需要走这样的路。一路上都在灌木从中串行,没有大树。经过一个多小时,终于来到了半山腰的一个平台,这里是这条线路的最高处,虽然还没有到山顶,但已有一览纵山小的感觉了。

登高远眺,山下是来的路线和农田。
身后仍然还是高山,在镜头前飞跃的几只蜜蜂也被照了下来。接下来有走了一个多小时的栈道,一个多小时的水泥路面,5个多小时后,绕山一圈后回到了出发点。按宣传画册的介绍,这条线路一般需要7到8小时。
爬完后,虽然有些累,但也值得。虽然风景很一般,也算是一个亲近自然的好地方。比起那些人满为患的景区,这里会让你更自由。
-
生活已离不开网络,这些日子一直淹没在网络中,回忆起来却什么事都没做,多半都是在消磨时间。运量了许久的网站维护团队算是终于成立了,人虽然不多,但只要有激情,在以后的日子中会慢慢发展壮大的。
财务处交给的任务已经两周了,现在只是做了一个框架,看来需要抓紧时间来完成了,也不枉人家对我的信任。
今天去参加了学校的ACM/ICPC的第一次活动,准备得有些仓储,加上以前没有怎么接触过ACM/ICPC,讲得有些乱,不知同学感觉如何。
以后的日子还是很忙,上课,学院党组织活动,接受的各种任务,还要经常维护学院网站……想着这么多的事,就想早点退休了。 还是继续淹没在网络中吧。
-
今天上网看到了这个网站,感觉还不错。“赶集网”,把我们寻常百姓的日常的赶集放到了网上。现在全国几十个大城市都有相应的版面,每个城市都有详细的分类信息,且信息非常多,很多都可以找到。还是Google的战略合作伙伴。以前一直没用过,今天就试一下。网站注册很简单,只需要填写几条简单的信息就可以了,速度也很快,注册后就可以发布信息了。发布信息的分类也很详细。
信息发布如下:

网站简介的界面,Web2.0的风格,很有Google的传统。你也来试试吧。< –more–>
赶集网致力于下一代本地生活资讯网络平台的开发与运营,其管理团队由具有中国互联网多年运营经验的人士组成。
通过赶集网的本地城市资讯网络平台,本地用户可以实现对所在本地的生活消费信息服务或商品的了解和交易。赶集网主要是面向个人用户,让用户通过Internet获取和发布个人商品、服务信息的平台。赶集网分设房产、同城交友、招聘、二手物品交易、大学联盟等最本地化的信息服务,免费提供用户人性化的信息服务。赶集网追求简单,易用的风格,无不相关的页面修饰。
赶集网是作为最专业的本地信息服务运营商,为合作伙伴提供:最准确的目标消费用户群体、最直接的产品与服务展示平台、最有效的市场营销效果以及客户关系管理等多方面、多层次的服务。针对个人用户,承诺无广告,无使用费,提供一个非商业化的环境, 追求免费实用的Internet宗旨。
赶集网自2005年成立以来业务发展迅速,有效信息及活跃注册用户屡创新高,并且在北京、上海、广州、天津、深圳、武汉、南京、杭州等城市取得了绝对领先的市场占有率。不仅如此,赶集网在培养传统媒体用户转而使用网络媒体的用户习惯培养工作方面也付出了艰苦的努力,在这个过程中,赶集网与北京电视台,上海东方卫视,中国教育电视台,新京报,北京青年报,上海时代报均进行了持续的内容合作,并多次成功合力举办地面主题活动,真正实现了服务网民,服务大众的最初理想。

-
五一转眼就过了一半了。五一还没有开始,就被通知要加班,为申报省实验教学示范中心准备申报网站,这个五一的大半时间就毫在这里了,到今日,网站终于有了雏形,不知在明天的讨论会上是否能通过。这次网站的搭建还是依赖开源的Php-fusion,这是第二次使用它来搭建网站,使用起来方便多了,也提高了效率。最方便的一点就是成员可以任何地方登录后修改网站中的内容。
Php-fusion是一个很不错的开源内容管理系统,提供了文章、论坛、相册、下载、新闻、网址、FAQ等模块,且精简,速度较快;区块和栏目链接定义灵活,强大的用户和后台管理,还支持多国语言,可以自由修改语言。对于一般的对外宣传网站已足够。
不过在使用中也发现一些问题,Php-fusion中的页面布局采用的表格和CSS,没有采用XHTML,这显然是不符合现阶段Web标准的,采用表格的另一个缺憾就是在自己设计Theme时不太灵活,而且变得有些繁杂。希望在下一版本中对此能有所改进。
在最新版本(v6.01.9)的Php-fusion中没有中文包,还好前一次使用的版本有中文语言包,以此作为基础,又对新版本的语言做了一次汉化。
-
getchar函数getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句,如:
char c;
c=getchar();#include<stdio.h>
void main(){
char c;
printf(”input a character\n”);
c=getchar();
putchar(c);
}用getchar函数还应注意几个问题:
1.getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。
2.使用本函数前必须包含文件“stdio.h”。
3.在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕。void main(){
char a,b,c;
printf(”input character a,b,c\n”);
scanf(”%c %c %c”,&a,&b,&c);
printf(”%d,%d,%d\n%c,%c,%c\n”,a,b,c,a-32,b-32,c-32);
}
输入三个小写字母
输出其ASCII码和对应的大写字母。void main(){
int a;
long b;
float f;
double d;
char c;
printf(”%d,%d,%d,%d,%d”,sizeof(a),sizeof(b),sizeof(f)
,sizeof(d),sizeof(c));
}
输出各种数据类型的字节长度。 -
近日安装了Cygwin,也在上面装了GCC,就打算用GCC编译程序,于是重新开始学习C语言。回想当时大学时学习C语言时,使用的教材是清华影印Person的ANSI C,每个周末做得最多的事就是拿着那本计算机辞典到图书馆做翻译,结果学的还是不是很好。今天用VI写了第一个Hello, world!程序,还算很顺利,只是vi用起来有些幸苦。(用GCC编译程序请看: 如何使用gcc编译器?)不过在写a+b程序时,在接受数据输入的语句上就出现了错误。对大体的语法结构还很清楚,但是很多细节已经很模糊了。
今天在这里,就把 ANSI C的数据输入回顾一下。
C语言的数据输入是由函数语句完成的。 scanf函数称为格式输入函数。
scanf 函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,与printf函数相同,C语言也允许在使用scanf函数之前不必包含 stdio.h文件。scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列); 其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串, 也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。例如,&a,&b分别表示变量a和变量b 的地址。这个地址就是编译系统在内存中给a,b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。变量的地址和变量值的关系如下: &a—>a567 a为变量名,567是变量的值&a是变量a的地址。在赋值表达式中给变量赋值,如: a=567 在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的地址。
格式字符串
格式字符串的一般形式为: %[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项。各项的意义如下:
1.类型
表示输入数据的类型,其格式符和意义下表所示。
格式 字符意义
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无符号十进制整数
f或e 输入实型数(用小数形式或指数形式)
c 输入单个字符
s 输入字符串
2.“*”符
用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。 如 scanf(”%d %*d %d”,&a,&b);当输入为:1 2 3 时,把1赋予a,2被跳过,3赋予b。
3.宽度
用十进制整数指定输入的宽度(即字符数)。例如: scanf(”%5d”,&a);
输入:
12345678
只把12345赋予变量a,其余部分被截去。又如: scanf(”%4d%4d”,&a,&b);
输入:
12345678将把1234赋予a,而把5678赋予b。
4.长度
长度格式符为l和h,l表示输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表示输入短整型数据。
使用scanf函数还必须注意以下几点:
a. scanf函数中没有精度控制,如: scanf(”%5.2f”,&a); 是非法的。不能企图用此语句输入小数为2位的实数。
b. scanf中要求给出变量地址,如给出变量名则会出错。如 scanf(”%d”,a);是非法的,应改为scnaf(”%d”,&a);才是合法的。
c. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
d. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:
scanf(”%c%c%c”,&a,&b,&c);
输入为:
d e f
则把’d'赋予a, ‘f’赋予b,’e'赋予c。只有当输入为:
def
时,才能把’d'赋于a,’e'赋予b,’f'赋予c。 如果在格式控制中加入空格作为间隔,如 scanf (”%c %c %c”,&a,&b,&c);则输入时各数据之间可加空格。
void main(){
char a,b;
printf(”input character a,b\n”);
scanf(”%c%c”,&a,&b);
printf(”%c%c\n”,a,b);
}
scanf(”‘C14F14%c%c”,&a,&b);
printf(”%c%c\n”,a,b); 由于scanf函数”%c%c”中没有空格,输入M N,结果输出只有M。
而输入改为MN时则可输出MN两字符,见下面的输入运行情况: input character a,b
MN
MN
void main(){
char a,b;
printf(”input character a,b\n”);
scanf(”%c %c”,&a,&b);
printf(”\n%c%c\n”,a,b);
}
scanf(”%c %c”,&a,&b); 本例表示scanf格式控制串”%c %c”之间有空格时, 输入的数据之间可以有空格间隔。e. 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。
例如:
scanf(”%d,%d,%d”,&a,&b,&c); 其中用非格式符“ , ”作间隔符,故输入时应为: 5,6,7
又如: scanf(”a=%d,b=%d,c=%d”,&a,&b,&c);
则输入应为
a=5,b=6,c=7g. 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。
void main(){
int a;
printf(”input a number\n”);
scanf(”%d”,&a);
printf(”%ld”,a);
}
由于输入数据类型为整型, 而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。如改动程序如下:
void main(){
long a;
printf(”input a long integer\n”);
scanf(”%ld”,&a);
printf(”%ld”,a);
}
运行结果为:
input a long integer
1234567890
1234567890 当输入数据改为长整型后,输入输出数据相等。 -
在Cygwin中也有vi文本编辑器,缺省安装是没有的,需要重新安装,安装是将Vi选中即可。使用的命令如下:
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次编辑移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。