你好亲,#include <stdioh>
#include <stringh>
#include <stdlibh>
int main(void)
{
printf("输入学生的信息,分别是班级,姓名,学号:");
FILE student = fopen( "studenttxt","wb+");
if( student == NULL )
{
printf("文件打开失败!");
system("pause");
return 0;
}
char a[100] ;
gets(a);
fwrite( a,(strlen(a)+1)sizeof(char),1,student);
char szbuffer[100];
fseek(student,0L,0);
fread( szbuffer,(strlen(a)+1)sizeof(char),1,student);
printf("写入的studenttxt文件的内容为:%s\n",szbuffer);
fclose(student);
system("pause");
return 0;
}
这个题目考察的是fread和fwrite ,本来文本不应该用这两个函数但是既然用了,要注意的是中间的文件指针,用fread的时候,需要fseek回到起始点,否则会出现乱码,经本人探测证明是对的
正常安装完毕后,打开dbc2000 点herodb 大家看见了三个文件吧 <BR>分别是magicdb monterdb 和stditemdb <BR>magicdb呢就是你所修炼的法术和各种技能 </P>
<P>嫌练的慢麻烦吧~~~很简单哦 trainlv 表格是需要升级的经验 <BR>needlv 是需要的等级 <BR>注:mode 里 0 是战士技能 1是道士技能 2 是法师技能 </P>
<P><BR>monsterdb 是关于怪物的攻击,经验,还有等级方面的东西</P>
<P>好,现在是最重要的物品修改了所有的修改都在stditemdb里 <BR>兵器类<BR>一般来说武器只要改ac2和mac2就行了 前面是改准确 后面是改攻击 <BR>速度 把那两个都改成10 哈哈,你会发现你的武器是+10准确+10攻击速度 <BR>的超级兵器 还有的兵器能改附带幸运,可惜我没时间研究~~残念~ <BR>dc是攻击下限dc2是攻击上限mc是附带魔法sc是道术 不过最好别改太离谱了 <BR>超过了255带在身上攻击是会减成0的 <BR>戒指类 <BR>戒指有几种属性,像生铁 降妖之类的ac mac 是防跟魔防 <BR>狂风,道德,魅力则是毒物躲避,中毒恢复之类的 都可改 <BR>攻击速度 后面的dc mc sc 相同 <BR>项链类 <BR>项链可带的属性可真不少,什么魔法恢复啊,生命恢复啊 幸运,行动速度 <BR>都能带 <BR>一般来说 mode是0的如绿色,蓝翡翠之类的是加准确和敏捷 <BR>而狂风,记忆,之类的是加幸运和生命魔法恢复 <BR>注意了能改幸运,自然也是能加诅咒的 改的时候注意下 <BR>改幸运一般是ac2 <BR>手镯类 <BR>也分两类 一个是加敏捷和准确的 一个是加防的 <BR>加准确和敏捷的手镯改dc 是加敏和准, <BR>而加防和攻的改则是加防 <BR>inx编号 <BR>name名字 <BR>stdmode模式(定义物品是什么比如药就是0,男衣服是10女的是11,其实就是你物品使用方法的模式,比如0就是药,你就双击,10是衣服,你就穿) <BR>shape模式(stdmode分类下的小分类,别如慢慢加的药是0,瞬间加的是1,其实就是这个东西效果的模式,比如0的药就1格1格加,1的药就瞬间加) <BR>wi这个是重量 <BR>anicount,source,resevc这3个不知道有什么用,我也没用到 <BR>looks是外观,就是你看到的 <BR>duarmax这个是持久,是传奇中的1000倍 <BR>stock不知道有什么用 <BR>下面讲关键的 <BR>先说药类 <BR>std 0 sha 0 就是说普通药,比如金创药,ac是加血的数字mac是加魔法的数字 <BR>std 0 sha 1 就是说太阳水类,点了就满的,ac是加血的数字mac是加魔法的数字 <BR>说刀 <BR>一般的刀的std是5,或6,我也不知道有什么区别 <BR>ac2是准,mac2是敏捷,mac是攻击速度ac是 <BR>项链 <BR>stdmode19的和20的不同 <BR>主要区别在ac,ac2,macmmac2具体见上 <BR>以后的物品也可以同上的规律 <BR>关于need <BR>need和needlevel有关 <BR>need 0 <BR>needlevel是段术 <BR>need 1后者是攻击力 <BR>2是魔法 <BR>3是道术 <BR>4不知道咯 <BR>修改物品的外观。用db打开d:\mirserver\mud2\db\stditems,在各套装备的looks下边改变相应的对应数字。有几个比较cool的推荐给大家。 <BR>手镯430 戒指429 项链428 <BR>手镯436 戒指438 项链437 <BR>手镯442 戒指441 项链440 <BR>首先用db commander 2000,打开:\mirserver\mud2\db下的stditemsdb数据库文件 <BR>1选中最底下的那个装备名,然后点图中所示1的位置那个+号,这样就会在你所选中的装备前面插入一列横向表单,点了+号后,在右边就会出现一个“对号”标记的按钮,按一下这个“对号”就表示确定插入这一横列。 <BR>2现在开始你就是一名裁缝了: <BR>a首先点一下最左边“idx”属性对下来的空表单处,然后写入序号,记住序号不要重复,最好能按照先后次序排列(具体有什么影响我也不知道。) </P>
<P>b“name”属性是物件的名称,在这里我们写入“伯爵斗篷(男)"。 </P>
<P>c“stdmode”属性具体表示什么我不知道,但男的衣服改成“10”,女的衣服改成“11”,这样男的衣服就不能给女的穿,女的衣服就不能给男的穿了! </P>
<P>d“shape”<BR>“5”表示“灵魂战衣”的样子。 <BR>“4”表示“魔法长袍”的样子。 <BR>“3”表示“重盔甲”的样子。 </P>
<P>e“weight”属性是物件重量,这个很简单,自己改咯! </P>
<P>f“looks”属性决定了这件衣服@make出来后放包包里的样子和在装备栏里的样子,这个你可以参照前面物件的属性,我查了一下,变量是这样的: <BR>“重盔甲(男)”or"战神盔甲(男)"or"钢盔甲(男)" 62 <BR>"魔法长袍(男)"or"恶魔长袍(男)"or"圣龙魔袍(男)" 63 <BR>"灵魂战衣(男)"or"幽灵战衣(男)"or"泰坦战衣(男)" 64 <BR>"重盔甲(女)"or"战神盔甲(女)"or"钢盔甲(女)" 82 <BR>"魔法长袍(女)"or"恶魔长袍(女)"or"圣龙魔袍(女)" 83 <BR>"灵魂战衣(女)"or"幽灵战衣(女)"or"泰坦战衣(女)" 84 <BR>改其他装备的时候参照前面物件的变量就可以了! </P>
<P>g"duramax"这个就是我们要找的物件持久的属性了,一开始怎么也找不到,原来这里的变量中"1000"表示1个持久度,那么"40000"就表示40个持久度了! </P>
<P>h后面的属性大家一定都熟悉了: <BR>"ac" 防御力下限 <BR>"ac2" 防御力上限 <BR>"mac" 魔防下限 <BR>"mac2" 魔防上限 <BR>"dc" 物理攻击力下限 <BR>"dc2" 物理攻击力上限 <BR>"mc" 魔法攻击力下限 <BR>"mc2" 魔法攻击力上限 <BR>"sc" 道术下限 <BR>"sc2" 道术上限 <BR>"needlevel" 需要等级 <BR>"price" 价格 <BR>物品是首饰时 <BR>"ac2" 不是 防御力上限 而是 准确 <BR>"mac2" 不是 魔防上限 而是 敏捷 <BR>来看: <BR>阎罗手套:防御0-4 <BR>数据库体现: <BR>ac 0 <BR>ac2 4 <BR>记忆头盔:防御3-3 <BR>数据库体现: <BR>ac 3 <BR>ac2 3 <BR>祈祷头盔:防御3-4 魔御1-2 <BR>数据库体现: <BR>ac 3 <BR>ac2 4 <BR>mac 1 <BR>mac2 2 <BR>这样看来,在普通首饰和服饰中: <BR>ac就表示防御下限; <BR>ac2表示防御上限; <BR>mac表示魔御下限; <BR>mac2表示魔御上限。 </P>
<P>有特殊的吗?有: <BR>白色虎齿项链:道术1-0 魔法躲避20% <BR>数据库体现: <BR>ac2 2 <BR>sc 1 <BR>灯笼项链:攻击1-0 魔法躲避10% <BR>数据库体现: <BR>ac2 1 <BR>dc 1 </P>
<P>这里的ac2 就表示魔法躲避,其中1代表10%,2就是20%。 <BR>问题:要是防御0-2 魔法躲避20%,那ac2究竟要代表什么???幸好还没发现有这样的首饰。(需要研究) </P>
<P>看更特殊的: <BR>狂风项链 攻击0-1 攻击速度+2 <BR>数据库体现: <BR>ac 2 <BR>ac2 0 <BR>dc 0 <BR>dc2 1 <BR>gm项链:攻击速度+10 生命力恢复100% 魔法力恢复100% <BR>数据库体现: <BR>ac 10 <BR>ac2 10 <BR>mac 0 <BR>mac2 10 <BR>比较一下,这里的 <BR>ac 表示的是攻击速度 <BR>ac2表示生命力恢复100% <BR>mac2表示魔法力恢复100% </P>
<P><BR>武器呢?武器中这几个属性所代表的又是不同的: <BR>降魔:准确+1(其他属性略) <BR>数据库体现: <BR>ac2 1 <BR>pk刀:幸运+7,准确+7(其他属性略) <BR>数据库体现: <BR>ac2 7 <BR>source -7(注意这个属性) <BR>超级无极棍:幸运+10 准确+10 神圣+10 <BR>数据库体现: <BR>ac 10 <BR>ac2 10 <BR>source -10(注意) <BR>我找遍所有武器,只有超级无极棍的ac 为10 ,那么可以推断武器中的 <BR>ac 表示神圣,虽然我不知道神圣到底干什么用的?(需要研究) <BR>而ac2 就表示准确 <BR>重点是source ,不难看出,他应该就代表了幸运,但为什么是-10呢?莫非诅咒才体现为正值?(需要研究) </P>
<P><BR>继续要药剂的属性: <BR>强效金疮药:hp +90 <BR>数据库体现: <BR>ac 90 <BR>强效太阳水:hp +50 mp +80 <BR>数据库体现: <BR>ac 50 <BR>mac 80 <BR>这样看来,这里的 <BR>ac 表示 hp前值(注 hp:200/300,200为前值,300为后值。) <BR>mac 表示 mp前值 <BR>没特殊的吗?有: <BR>一些不常见的特殊药剂: <BR>生命强化水:生命力暂时提升120秒(120秒内hp后值+50) <BR>数据库体现: <BR>ac 50 <BR>mac2 120 <BR>魔法强化水:魔法力暂时提升120秒(120秒内mp后值+50) <BR>mac 50 <BR>mac2 120 <BR>那么这里的 <BR>ac 表示hp后值 <BR>mac 表示mp后值 <BR>mac2 就表示时间了。 <BR>大家知道 苹果 是每项属性都暂时增加240秒,他的ac2中是2,那么应该和武器一样,ac2表示准确了! <BR>还有详细的:<BR>StdItemsdb 中的 Stdmode 的详细解释<BR>Stdmode Shape<BR> </P>
<P>0 :药 (AC加HP的值,MAC加MP的值)<BR> 0:普通<BR> 1:直接增加(如太阳水)<BR> 2,3,4 未知<BR>1 :食物<BR> 0:普通<BR>2 :食物<BR> 0:普通<BR>3 :特殊药水和卷轴<BR> 1:地逃<BR> 2:随机<BR> 3:回城<BR> 4:祝福油<BR> 5:行会回城卷<BR> 6-8:<BR> 9:修复油<BR> 10:战神油<BR> 11:**<BR> 12:特殊药水(MAC2:时间,Dc:+DC,Sc:+SC,Mc:+MC,Ac2:+速度,Ac=+HP,Mac=+MP)<BR>4 :书<BR> 0:战 1:法 2:道<BR>5,6:武器 (5刀剑,6法杖)<BR> shape:武器形状 (Ac2=准,Mac=诅咒,Mac2=攻击速度-,Source=神圣,Ac=幸运)<BR>10 :男衣<BR>11 :女衣<BR> Shape:形状 1:布衣 2:轻盔 3:战 4:法 5:道<BR>15 :头盔<BR> 0:普通<BR> 125:记忆系列<BR> 129:祈祷系列<BR> 132:神秘系列<BR>19 :项链 (Ac2=魔法躲避,Mac=诅咒,Mac2=幸运)<BR> 0:普通<BR> 123:记忆系列<BR>20 :项链 (Ac2=准,Mac2=敏)<BR> 0:普通<BR> 120:技能项链<BR> 121:探测项链<BR> 135:魔血项链(MP转HP)<BR> 137:虹魔项链(吸HP)<BR>21 :特殊项链 (Ac=速度+,Ac2=HP 恢复,Mac=速度-,Mac2=MP 恢复)<BR> 0:狂风<BR> 113:恢复<BR>22 :戒指<BR> 0:普通<BR> 111:隐身<BR> 112:传送<BR> 113:麻痹<BR> 114:复活<BR> 115:火焰<BR> 116:治愈<BR> 117:?<BR> 118:护身<BR> 119:超负载<BR> 122:记忆<BR> 130:神秘<BR> 133:魔血<BR> 136:虹魔<BR>23 :戒指 (Ac=速度+)<BR> 0:普通<BR> 128:祈祷<BR>24 :手镯<BR> 0:普通<BR> 124:记忆<BR>26 :手镯</P> </td>
如果你的要求是用一种语言来打开数据库的话,那么你必须首先了解dbf文件的格式,这一点非常的重要。下面是一个c语言写的读dbf文件的小程序,你看看吧!,你可以编辑一下,看可否达到你的要求!
#include <stdlibh>
#include <stdioh>
#define NFIELDS 5
#define TRUE 1
#define FALSE 0
/ DBF文件头结构 /
struct dbf_head{
char vers;
unsigned char yy,mm,dd;
unsigned int no_recs;
unsigned short head_len,rec_len;
char reserved[20];
};
/ DBF字段描述结构 /
struct field_element{
char field_name[11];
char field_type;
unsigned int offset;
unsigned char field_length;
unsigned char field_decimal;
char reserved1[2];
char dbaseiv_id;
char reserved2[10];
char production_index;
};
char dbf_fields_name[NFIELDS]={
"a", "b","c","d","e"
};
/ 全局变量 /
struct dbf_head file_head;
struct field_element fields;
int length;
unsigned int offset;
/ 整形数字节顺序改变函数 /
void revert_unsigned_short(unsigned short a)
{
unsigned short left,right;
left=right=a;
a=((left&0x00ff)<<8)|((right&0xff00)>>8);
}
void revert_unsigned_int(unsigned int a)
{
unsigned int first,second,third,forth;
first=second=third=forth=a;
a=((first&0x000000ff)<<24)|((second&0x0000ff00)<<8)|
((third&0x00ff0000)>>8)|((forth&0xff000000)>>24);
}
/ 主函数代码 /
void main()
{
register int i,j;
FILE fp_dat;
char buffer;
char allspace;
int fields_count, matched=FALSE;
unsigned int counts;
/ 打开dbf文件 /
if((fp_dat=fopen("adbf","rb"))==NULL){
fprintf(stderr,"Cannot open dbf file to read!\n");
exit(1);
}
/ 读取表头纪录 /
fseek(fp_dat,0L,SEEK_SET);
fread((void)&file_head,sizeof(struct dbf_head),1,fp_dat);
revert_unsigned_int(&file_headno_recs);
revert_unsigned_short(&file_headhead_len);
revert_unsigned_short(&file_headrec_len);
/ 计算字段数 /
fields_count=(file_headhead_len-sizeof(struct dbf_head)-1-263)/sizeof(struct field_element);
/ 开辟存储字段子记录的空间 /
if((fields=(struct field_element)malloc(sizeof(struct field_element)fields_count))==NULL){
fprintf(stderr,"Cannot allocate memory for fields array !\n");
fclose(fp_dat);
exit(2);
}
/ 开辟存储一条数据记录的空间 /
if((buffer=(char)malloc(sizeof(char)file_headrec_len))==NULL){
fprintf(stderr,"Cannot allocate memory for record buffer!\n");
fclose(fp_dat);
exit(3);
}
/ 开辟一个全为空格的纪录,以便后面做比较 /
if((allspace=(char)malloc(sizeof(char)file_headrec_len))==NULL){
fprintf(stderr,"Cannot allocate memory for all_space record buffer!\n");
fclose(fp_dat);
exit(4);
}
else{
memset((void)allspace,'\x20',file_headrec_len-1);
allspace[file_headrec_len]='\0';
}
/ 读取所有的字段子记录,调整整形数的字节顺序 /
fread((void)fields,sizeof(struct field_element),fields_count,fp_dat);
for(i=0;i<fields_count;i++)
revert_unsigned_int(&fields[i]offset);
/ 计算各个字段的字节偏移量,第一字节为删除标记 /
fields[0]offset=1;
for(i=1;i<fields_count;i++)
fields[i]offset=fields[i-1]offset+(unsigned short)fields[i-1]field_length;
/ 开辟存储字段长度和偏移量的数组 /
length=(int)malloc(sizeof(int)fields_count);
offset=(unsigned int)malloc(sizeof(unsigned int)fields_count);
if(length==NULL||offset==NULL){
fprintf(stderr,"Cannot allocate memory for array length or offset\n");
exit(-1);
}
/ 找到所需字段的偏移量和长度,如果没有相应字段,程序退出 /
for(i=0;i<NFIELDS;i++)
{
for(j=0;j<fields_count;j++)
{
if(strcmp(dbf_fields_name[i],fields[j]field_name)==0)
{
offset[i]=fields[j]offset - 1;
length[i]=fields[j]field_length;
matched=TRUE;
break;
}
if(!matched){
fprintf(stderr,"dbf file structure is invalid, field %s not found\n", dbf_fields_name[i]);
exit(-1);
}
else
matched=FALSE;
}
}
/ 定位文件指针到数据记录的开始位置 /
fseek(fp_dat,(long)file_headhead_len,SEEK_SET);
/ 读取每条记录的字段数据 /
for(counts=0;counts<file_headno_recs;counts++)
{
/ 如果有删除标记,跳到下一条记录 /
if(fgetc(fp_dat)==(int)'\x2a')
{
fseek(fp_dat,(int)file_headrec_len-1,SEEK_CUR);
continue;
}
fread((void)buffer,(int)file_headrec_len-1,1,fp_dat);
buffer[file_headrec_len]='\0';
/去掉全为空格的记录行/
if(strcmp(buffer,allspace)==0)
continue;
}
fclose(fp_dat);
/ 释放开辟的空间 /
free(buffer);
free(allspace);
free(offset);
free(length);
}
第一步,安装必须的包:
32位安装:
apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 libstdc++6 alien
64位安装:
sudo apt-get install gcc libaio1 lesstif2 lesstif2-dev make libc6 libc6-i386 libc6-dev-i386 libstdc++5 lib32stdc++6 lib32z1 ia32-libs
第二步,添加用户:
# adduser oracle
正在添加用户"oracle"
正在添加新组"oracle" (1001)
正在添加新用户"oracle" (1002) 到组"oracle"
创建主目录"/home/oracle"
正在从"/etc/skel"复制文件
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
Changing the user information for oracle
Enter the new value, or press ENTER for the default
Full Name []: oracle
Room Number []:
Work Phone []:
Home Phone []:
Other []:
第三步,修改设置
A设置swap区
Oracle10g至少需要500M的内存和400M的交换空间,要查看swap区是否足够大小,用 fdisk -l 命令去查,如果小于400M的空间,那么就要增加swap的大小 重设交换分区可以使用如下 *** 作:
dd if=/dev/zero of=tmp_swap bs=1k count=900000
chmod 600 tmp_swap
mkswap tmp_swap
swapon tmp_swap
完成安装以後,可以释放这个空间:
swapoff tmp_swap
rm tmp_swap
count 值是根据你需要调整的交换分区大小而定。
B修改 sysctlconf
添加如下的行到/etc/sysctlconf 中:
kernelshmmax = 3147483648
kernelshmmni = 4096
kernelshmall = 2097152
kernelsem = 250 32000 100 128
fsfile-max = 65536
netipv4ip_local_port_range = 1024 65000
C修改 limitsconf
添加如下的行到/etc/security/limitsconf中:
soft nproc 2407
hard nproc 16384
soft nofile 1024
hard nofile 65536
D让修改生效
修改了以上文件後,必须让其生效,或重启系统,或切换到 root 用户下用以下的方式改变内核运行参数: sysctl -p
E产生相应的软连接
创建一个文件如 kk,内容如下:
#!/bin/bash
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
mkdir /etc/rcd
ln -s /etc/rc0d /etc/rcd/rc0d
ln -s /etc/rc2d /etc/rcd/rc2d
ln -s /etc/rc3d /etc/rcd/rc3d
ln -s /etc/rc4d /etc/rcd/rc4d
ln -s /etc/rc5d /etc/rcd/rc5d
ln -s /etc/rc6d /etc/rcd/rc6d
ln -s /etc/initd /etc/rcd/initd
创建後,切换到 root 用户去执行一下。
F创建RedHat的版本声明文件
在/etc/redhat-release中添加以下语句,以使安装程序认为正在一个RedHat的系统上安装:
Red Hat Linux release 31 (drupal)
G修改环境变量
编辑 /home/oracle/bashrc,增加以下export 的内容。 (注意,在Ubnutu 704中用户的profile文件已改名为~/profile,有很多安装教程都是用 ~/bash_profile,在704中不行的)
export ORACLE_HOME=/opt/ora10
export ORACLE_OWNER=oracle
export ORACLE_SID=ora1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
第四步,开始安装
注销原来的用户,改用oracle用户登录。用env查看一下环境变量是否生效。 然後进行/ora_ins_disk中进行安装,执行安装脚本时还需要以root权限创建目录/opt/ora10
sudo mkdir /opt/ora10
sudo chown -R oracle:oracle /opt/ora10
sudo chmod -R 770 /opt/ora10
cd/ora_ins_disk
/runInstaller
在安装过程中,请使用 Advanced Installation,然後一路按默认的设置进行往下设置,到窗单名为 “Specify Database Configuration Options”的时候,要修改以下设置: Database Character Set 中选择 Simplified Chinese ZHS16GBK 在安装的後期,系统提示需要用 root 用户去运行两个脚本文件orainstRootsh和rootsh,安装完毕後,Oracle是正常启动着的,你可以试一下连接数据库,同时也可以使用浏览器去设置一下Oracle,(url:>
以上就是关于C语言怎么输出txt文件内相同姓名,不同学号的学生全部的内容,包括:C语言怎么输出txt文件内相同姓名,不同学号的学生、传奇中武器的stdmode属性的5和6有什么区别还有就是 DB数据库中那些英文都代表什么属性、怎样打开.db的数据库文件啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)