初学者——想写个和微软WORD类似的字数统计工具
本程序可以统计文件的字数、字符数和行数。本程序向初学的推荐,我也是初学者呀。
不过该程序只能统计那些一个字节的字符,像汉字就不可以,如果你要统计汉字的个数,那该结果是该程序统计的汉字数的一半。
#include<stdio.h>
int wordCount,charCount,lineCount;//字数、字符数和行数 DE全局变量声明
void count(char *file);
int main()
{
char file[10];
printf("input your file name:\n");
scanf("%s",file);
count(file);
printf("the information of the file:\n");
printf("\twords is %d\n",wordCount);
printf("\tchars is %d\n",charCount);
printf("\tlines is %d\n",lineCount);
getch();
return 0;
}
void count(char *file)//计数的函数
{
FILE *fp;
char ch;
wordCount=0;//赋初值
charCount=0;
lineCount=0;
if((fp=fopen(file,"r"))==NULL)
{
printf("not find file!\n");
return;
}
ch=fgetc(fp);
while(ch!=EOF)
{
charCount++;
if(ch!='\t'&&ch!='\n'&&ch!=' ')//字数和字符数的不同的地方吧
{
wordCount++;
}
if(ch=='\n')//只能算记录回车个数,毕竟这是初学的呀
{
lineCount++;
}
ch=fgetc(fp);
}
fclose(fp);
}
初学的注意啦,如果用tc,请将注释符修改,并把要测试的文件放在tc文件夹里,或者修改tc的路径,别的也类似……
再一个是比较有趣的,记得在学校的电子阅览室的机器CMOS都设密码了,我们知道可以用几种方法破译解除密码。有打开机箱用跳线放电的方法,我建议该方法不能轻易用哦,并且原来的CMOS设置都没了。或者用DEBUG,也就是在DOS下用DEBUG命令进入,在其提示符下“O 70 11 回车”和“O 71 10 回车”,再按Q退出即可。关于DEBUG,我转载了一篇文章http://bbs.bc-cn.net/viewthread.php?tid=159989。该程序也是一种方法,本程序主要针对aword类型的BIOS来获取密码,也有不妥之处,不管怎么说好好学习,天天向上,这是开始。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
int main()
{
int i;
char password;
char byte=0;//注意啦
printf("The bios password in your computer is:\n");
/*先读取高位字节*/
outportb(0x70,0x1d);//打开0x70端口,获取0x1d字节数据
password=inportb(0x71);//从0x71端口读出数据
for(i=6;i>=0;i-=2)
{
byte=password;
byte>>=i;//右移位操作,在谭浩强的书中有一章详解
byte=byte&0x03;//用十进制表示
printf("%d",byte);
}
/*读取底位字节*/
outportb(0x70,0x1c);
password=inportb(0x71);
for(i=6;i>=0;i-=2)
{
byte=password;
byte>>=i;//右移位操作
byte=byte&0x03;//用十进制表示
printf("%d",byte);
}
printf("\n");
system("pause");
return 0;
}
注:void outportb(unsigned char port, unsigned char value) port 端口地址,value 要输出的8位数头文件为dos.h,用途为向port地址的接口输出value。award密码存在cmos的0xlc、0xld两个字节中,将他们读出用十进制表示即可。
附件是函数查询软件.exe无毒!上传不了,说格式不对,要打包了
[此贴子已经被作者于2007-8-2 20:28:25编辑过]