当前位置:首页 > 代码 > 正文

求任意字节源代码(字节码编程)

admin 发布:2022-12-19 22:20 142


本篇文章给大家谈谈求任意字节源代码,以及字节码编程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求标准C语言,查找某字符串在指定字节串中的位置代码。

#include stdio.h

#include stdlib.h

int FindStr(char* source, char* target)

{

int i,j;

int s_len=strlen(source);

int t_len=strlen(target);

if(t_lens_len)

{

return -1;

}

for(i=0;i=s_len-t_len;i++)

{

j=0;

int flag=1;

if(source[i]==target[j])

{

int k,p=i;

for(k=0;kt_len;k++)

{

if(source[p]==target[j])

{

p++;

j++;

continue;

}

else

{

flag=0;

break;

}

}

}

else

{

continue;

}

if(flag==1)

{

return i+1;

}

}

return -1;

}

int main(int argc, char *argv[]) 

{

    char s1[50]={"\0"};

    char s2[50]={"\0"};

    fflush(stdin);

    scanf("%[^\n]",s1);

    fflush(stdin);

    scanf("%[^\n]",s2);

    int re=FindStr(s1,s2);

    printf("%d",re);

    return 0;

}

求标准C语言读写文件的源代码

C语言读写文件 都是三个步骤

1.获取文件描述符

2.对文件读写

3.关闭文件

对文件读操作

//获取文件指针

FILE *pFile = fopen("1.txt","w"); // 文件打开方式 如果原来有内容也会销毁//向文件写数据

fwrite ("hello", //要输入的文字

         1,//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4

         strlog("hello"), //单元个数 我们也可以直接写5

         pFile //我们刚刚获得到的地址

         );

//fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写

fflush(pFile); //数据刷新 数据立即更新

对文件写操作

FILE *pFile=fopen("1.txt","r"); //获取文件的指针

char *pBuf;  //定义文件指针

fseek(pFile,0,SEEK_END); //把指针移动到文件的结尾 ,获取文件长度

int len=ftell(pFile); //获取文件长度

pBuf=new char[len+1]; //定义数组长度

rewind(pFile); //把指针移动到文件开头 因为我们一开始把指针移动到结尾,如果不移动回来 会出错

fread(pBuf,1,len,pFile); //读文件

pBuf[len]=0; //把读到的文件最后一位 写为0 要不然系统会一直寻找到0后才结束

MessageBox(pBuf);  //显示读到的数据

fclose(pFile); // 关闭文件

怎么求一个数的原码?要详细。

大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即28(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~28-1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。别停下,还是一个字节的无符号整数,我们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用8位二进制表示为00000000(从理论上来说也可以表示成其他不同的二进制码,只要这256个数每个数对应的二进制码都不相同就可以了),再假设1表示为00000001,2表示为00000010,3表示为00000011,依次类推,那么最大的那个数255在8位二进制中就表示为最大的数11111111,然后,我们把这些二进制码换算成十进制看看,会发现刚好和我们假设的数是相同的,而事实上,在计算机中,无符号的整数就是按这个原理来储存的,所以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。比如我给你一个2个字节大小的二进制码,首先声明它表示的是无符号的整数:00000000 00000010,我们把前面的0省略,换算一下,它表示的也是数值2,和前面不同的是,它占了2个字节的内存。不同的类型占的内存空间不同,如在我的电脑中char是1个字节,int是4个字节,long是8个字节(你的可能不同,这取决于不同的计算机设置),它们的不同之处仅仅是内存大的能表示的不同的信息多些,也就是能表示的数范围更大些(unsigned int能表示的范围是0~28*4-1),至于怎么算,其实都是一样的,直接把二进制与十进制相互转换,二进制就是它在计算机中的样子,十进制就是我们所表示的数。啊哈,原来这些都是可以计算的呀,我曾经还以为不同的计算机储存的原理是不同的,取决于商家的喜好呢,呵呵。说了这么多怎么还没有提到原码、反码和补码呀,别急别急,心急吃不了热豆腐,呵呵,因为无符号的整数根本就没有原码、反码和补码。(啊,那不是被欺骗了,5555````我告诉妈妈去,哥哥欺负我)都说了别急嘛,你就不想想我说了这么半天的无符号整数,那么有符号的整数怎么办啊?

呵呵,对,只有有符号的整数才有原码、反码和补码的!其他的类型一概没有。虽然我们也可以用二进制中最小的数去对应最小的负数,最大的也相对应,但是那样不科学,下面来说说科学的方法。还是说一个字节的整数,不过这次是有符号的啦,1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127。它在计算机中是怎么储存的呢?可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,剩下的7位用来储存数的绝对值的话,能表示27个数的绝对值,再考虑正负两种情况,27*2还是256个数。首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,从00000001到01111111依次表示1到127。那么这些数对应的二进制码就是这些数的原码。到这里很多人就会想,那负数是不是从10000001到11111111依次表示-1到-127,那你发现没有,如果这样的话那么一共就只有255个数了,因为10000000的情况没有考虑在内。实际上,10000000在计算机中表示最小的负整数,就是这里的-128,而且实际上并不是从10000001到11111111依次表示-1到-127,而是刚好相反的,从10000001到11111111依次表示-127到-1。负整数在计算机中是以补码形式储存的,补码是怎么样表示的呢,这里还要引入另一个概念——反码,所谓反码就是把负数的原码(负数的原码和和它的绝对值所对应的原码相同,简单的说就是绝对值相同的数原码相同)各个位按位取反,是1就换成0,是0就换成1,如-1的原码是00000001,和1的原码相同,那么-1的反码就是11111110,而补码就是在反码的基础上加1,即-1的补码是11111110+1=11111111,因此我们可以算出-1在计算机中是按11111111储存的。总结一下,计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。下面再多举几个例子,来帮助大家理解!

十进制 → 二进制 (怎么算?要是不知道看计算机基础的书去)

47 → 101111

有符号的整数 原码 反码 补码

47 00101111 00101111 00101111(正数补码和原码、反码相同,不能从字面理解)

-47 10101111 11010000 11010001(负数补码是在反码上加1)

再举个例子,学C语言的同学应该做过这道题:

把-1以无符号的类型输出,得什么结果?(程序如下)

#include

void main()

{

short int n=-1;

cout(unsigned short int)n}

首先在我的电脑中short int类型的储存空间是2个字节,你的可能不同,我说过,这取决于你的计算机配置。它能储存28*2=65536个不同的数据信息,如果是无符号那么它的范围是0~65535(0~216-1),如果是有符号,那么它的范围是-32768~32767(-215~215-1)。这道题目中,开始n是一个有符号的短整型变量,我们给它赋值为-1,根据我们前面所说的,它在计算机中是以补码11111111 11111111储存的,注意前面说了是2个字节。如果把它强制为无符号的短整型输出的话,那么我们就把刚才的二进制把看成无符号的整型在计算机中储存的形式,对待无符号的整型就没有什么原码、反码和补码的概念了,直接把11111111 11111111转化成十进制就是65535,其实我们一看都是一就知道它是范围中最大的一个数了。呵呵,就这么简单。你个把上面的源代码编译运行看看,如果你的电脑short int也是两个字节,那就会和我得一样的结果。你可以先用这个语句看看:cout看看你的电脑里的短整型占多少的储存空间,也可以用sizeof来看其它任何类型所分配的储存空间。

最后提醒一句,关于数据如何在计算机中储存的,这里只适用于整型的数据,对于浮点型的是另一种方式,这里我们暂时就不深究了。

高分悬赏急求一段源代码

#includeiostream

#includefstream

#includeconio.h

using namespace std;

class Librarian //图书管理员类

{

public:

Librarian();

Librarian(int n,int j,char na[20],int w );

int getnumber();

int getjobage();

char *getname();

int getwages();

void resetjobage(int j);

void resetwages(int w);

void resetname(char na[20]);

private:

int number;

int jobage;

char name[20];

int wages;

};

Librarian::Librarian() //其函数的实现

{

number=0;

char b[20]="no one";

jobage=0;

strcpy(name,b);

}

Librarian::Librarian(int n,int j,char na[20],int w)

{

number=n;

jobage=j;

strcpy(name,na);

wages=w;

}

int Librarian::getjobage()

{return jobage;}

char *Librarian::getname()

{return name;}

int Librarian::getnumber()

{return number;}

int Librarian::getwages()

{return wages;}

void Librarian::resetjobage(int j)

{

jobage=j;

}

void Librarian::resetname(char na[20])

{

strcpy(name,na);

}

void Librarian::resetwages(int w)

{

wages=w;

}

class reader //读者类

{

private:

int number;

int age;

char name[20];

char borrowbook[20];

public:

reader();

reader(int c,int a,char b[20],char e[20]);

int getnumber();

int getage();

char *getname();

char * getborrowbook();

void reworkborrowbook(char a[20]);

};

reader::reader() //其函数的实现

{

char a[20]="没有人";

char c[20]="没有借书";

number=0;

age=0;

}

reader::reader(int a,int c,char d[20],char e[20])

{

number=a;

age=c;

strcpy(name,d);

strcpy(borrowbook,e);

}

int reader::getnumber(){return number;}

int reader::getage(){return age;}

char *reader::getname(){return name;}

char * reader::getborrowbook(){return borrowbook;}

void reader::reworkborrowbook(char a[20]){strcpy(borrowbook,a);}

struct book //图书的结构体

{

int num;

char name[20];

char writer[20];

};

void outbookinf() //输出所有图书信息

{

int i;

ifstream infile("allbook.txt",ios::in);

char line[50];

cout"书名"'\t'"书号"'\t'"作者"endl;

for(i=1;i=10;i++)

{

infile.getline(line,50,'\n');

coutlineendl;

}

infile.close();

}

void serchLaninf() //图书管理员信息函数

{

int n,i;

ifstream file("serchLaninf.txt");

if(file) { filen; file.close();}

else {cout"没有图书管信息理员"; exit(0);}

ifstream is("controlloer.txt",ios_base::binary);

if(is)

{

Librarian *A=new Librarian[n];

for(i=0;in;i++)

{

is.read((char *)A[i],sizeof(A[i]));

}

for(i=0;in;i++)

{

cout"编号"'\t'"工龄"'\t'"名字"'\t'"工资"endl;

coutA[i].getnumber()"\t"A[i].getjobage()"\t"A[i].getname()"\t"A[i].getwages()endl;

}

}

else

{

cout"txt文件打开出错'"endl;

}

is.close();

}

void libary() //图书馆的总信息

{

system("cls");

system("color 2e");

cout" "endl;

cout" "endl;

cout" "endl;

cout"本校图书馆由本部图书馆及彭州校区图书馆组成,图书馆总面积达了****平方米";

cout" (本馆现在有***类书籍***万册,****类书籍****万册,****类书籍****万册****类书籍****万册),";

cout"图书馆现有工作人员***名";

cout"图书馆现有的现代化设备价值超过****万元………………"endl;

}

void storelibrarian() //存入新的管理员的信息

{

int age,n,num,wage;

char name[20];

ifstream file("serchLaninf.txt");

if(file) { filen; file.close();}

else { n=0;}

cout"已有的图书管理员个数:";

coutnendl;

cout"请输入新图书管理员的编号和工龄,名字和工资:";

cinnumagenamewage;

Librarian A(num,age,name,wage);

cout"编号 工龄 名字 工资 "endl;

coutA.getnumber()" "A.getjobage()" "A.getname()" "A.getwages()endl;

ofstream outfile("controlloer.txt",ios_base::app );

outfile.write((char *)A,sizeof(A));

outfile.close();

n++;

ofstream tfile("serchLaninf.txt");

tfilen;

tfile.close();

cout"保存成功!";

}

void reLaninf() //修改图书管理员

{

int i,n,h,jobage,wage,j;

char name[20];

ifstream file("serchLaninf.txt");

if(file) { filen; file.close();}

else {cout"没有图书管信息理员";

exit(0);}

cout"已有的图书管理员个数:";

coutnendl;

Librarian *A=new Librarian[n];

ifstream is("controlloer.txt",ios_base::binary);

if(is)

{

for(i=0;in;i++)

{

is.read((char *)A[i],sizeof(A[i]));

}

for(i=0;in;i++)

{

cout"编号 工龄 名字 工资"endl;

coutA[i].getnumber()" "A[i].getjobage()" "A[i].getname()" "A[i].getwages()endl;

}

}

else

{

cout"打开文件出错"endl;

}

is.close();

cout"请选择你要修改的管理员编号:";

cinh;

cout"输入新的工龄,名字,工资:";

cinjobagenamewage;

A[h-1].resetjobage(jobage);

A[h-1].resetname(name);

A[h-1].resetwages(wage);

cout"该管理员修改后的名字是:"A[h-1].getname()" 工龄是:"A[h-1].getjobage()" 工资是:"A[h-1].getwages()endl;

ofstream tfile("controlloer.txt",ios_base::binary);

for(j=0;jn;j++)

{

tfile.write((char *)A[j],sizeof(A[j]));

}

tfile.close();

}

void aadbook() //新增图书

{

int num;char name[12];char writer[10];int n;

a:

ofstream fout("allbook.txt",ios::app);

cout"请录入图书信息:"endl;

cout"书名"'\t'"书号"'\t'"作者"endl;

cinname;foutname'\t';

cinnum;foutnum'\t';

cinwriter;foutwriter'\n';

fout.close();

cout"是否继续录入?1.是2.否"endl;

cinn;

if(n==1)

goto a;

else

{void studentland();

studentland();}

}

void delate() //删除函数

{ int m;

cout"选择操作选项:"endl;

cout" 1.删除全部信息"endl;

cout" 2.单个删除"endl;

cinm;

if(m==1)

{ofstream file("allbook.txt",ios::trunc);

cout"全部删除完毕,按任意键返回!"endl;

file.close();

getch();

system("cls");

void studentland();

studentland();

}

char str[10][80],buf[20];

a:

int i=0,flag=100,c=0;

ifstream fin("allbook.txt");

if(!fin){

cout"文件打开失败!"endl;

getch();

system("cls");

void studentland();

studentland();

}

cout"请输入你要删除的书名:"endl;

cinbuf;

strcat(buf,"\t");

while(fin.getline(str[i],80))

{

if(strncmp(str[i],buf,strlen(buf))==0)

{

flag=i;

}

i++;

}

fin.close();

if(flag==100)

{

cout"没有你所要删除的书籍!重新按1,否则0....."endl;

int b;

cinb;

if(b==1)goto a;

else c=1;

}

if(c==0){

ofstream fout("allbook.txt");

for(int j=0;ji;j++){

if(j==flag)continue;

foutstr[j]endl;

}

fout.close();

cout"你要删除的书籍的信息已删除,继续按1,否则按0....."endl;

int b;

cinb;

if(b==1)goto a;

}

cout"操作已经结束,按任意键返回......"endl;

getch();

system("cls");

void studentland();

studentland();

}

void searchbook() // 查找书籍

{

a:

ifstream fin;

int flag=0,b,length;

char str[20];

char f[200];char g[200];

fin.open("allbook.txt");

if(!fin)

{

cout"Open f1.dat error....."endl;

exit(1);

}

while(1)

{

cout"请输入书名:";

cinstr;

strcat(str,"\t");

length=strlen(str);

cout"------------------------------------"endl;

while(fin.getline(f,199))

{

strcpy(g,f);

if(strncmp(str,f,length)==0)

{

flag=1;

break;

}

}

if(flag==1)

{

cout"所查询的书已经找到:"'\n';

cout"--------------------------------"endl;

cout"书名"'\t'"书号"'\t'"作者"'\t'endl;

coutgendl;

cout"--------------------------------"endl;

flag=0;

cout"要继续查询按1,否则按0:"endl;

cinb;

if(b==0)break;

}

else

{

fin.close();

cout"没有此书,继续按1,否则按0..."endl;

cinb;

if(b==0)break;

goto a;

}

}

fin.close();

cout"查询完毕,按任意键返回......"endl;

getch();

system("cls");

void studentland();

studentland();

}

void seachreader() // 查询读者信息

{

a:

ifstream fin;

int flag=0,b,length;

char str[20];

char f[200];char g[200];

fin.open("readernum.txt");

if(!fin)

{

cout"没有此信息文件!"endl;

exit(1);

}

while(1)

{

cout"请输入你要查找读者的名字:";

cinstr;

strcat(str,"\t");

length=strlen(str);

cout"------------------------------------"endl;

while(fin.getline(f,199))

{

strcpy(g,f);

if(strncmp(str,f,length)==0)

{

flag=1;

break;

}

}

if(flag==1)

{

cout"所查询的读者已经找到:"'\n';

cout"--------------------------------"endl;

cout"名字"'\t'"编号"'\t'"年龄"'\t'"借书次数"endl;

coutgendl;

cout"--------------------------------"endl;

flag=0;

cout"要继续查询按1,否则按0:"endl;

cinb;

if(b==0)break;

goto a;

}

else

{

fin.close();

cout"没有此人,继续按1,否则按0..."endl;

cinb;

if(b==0)break;

goto a;

}

}

fin.close();

cout"查询完毕,按任意键返回......"endl;

getch();

system("cls");

void studentland();

studentland();

}

/*void seachreader() //查询读者的信息

{

int i,b,h=0;

char a[20];

ifstream file("readernum.txt");

if(file) { fileb; file.close();}

else { cout"没有文件";}

cout"已有的读者个数:";

coutbendl;

reader *A=new reader[b];

ifstream is("reader.txt",ios_base::binary);

if(is)

{

for(i=0;ib;i++)

{

is.read((char *)A[i],sizeof(A[i]));

}

}

else

{

cout"txt文件打开出错"endl;

}

is.close();

cout"请输入你要查找读者的名字:";

cina;

for(i=0;ib;i++)

{

if(strcmp(A[i].getname(),a)==0)

{

cout"编号 年龄 名字 借书情况 "endl;

coutA[i].getnumber()" "A[i].getage()" "A[i].getname()" "A[i].getborrowbook()endl;

h++;

}

}

if(h==0)cout"没有这个读者!";

}

*/

void Librarianland() //管理员登陆函数

{

int q,l=1,i,h;

system("cls");

system("color 2e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""现在进行身份确认,请输入口令:";

cini;

while(l)

{

if(i==00000)

{

system("cls");

system("color 3e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""|*******" "0,返回上一级菜单."" ******|"endl;

cout" ""|*******" "1,查询图书馆管理员的信息"" ******|"endl;

cout" ""|*******" "2,存入新的管理员信息. "" ******|"endl;

cout" ""|*******" "3,修改图书管理员的信息"" ******|"endl;

cout" ""|*******" "4,新增图书"" ******|"endl;

cout" ""|*******" "5,删除图书"" ******|"endl;

cout"请选择执行的操作:";

cinq;

if(q=0q6)

{

switch(q)

{

case 0:

l=0;

break;

case 1:serchLaninf();

system("pause");

break;

case 2:storelibrarian();

system("pause");

case 3:reLaninf();

system("pause");

break;

case 4:

void aadbook();

aadbook();

break;

case 5:

void delate();

delate();

break;

default:

break;

}

}

else

{

system("cls");

system("color 4e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""操作无效!"endl;

cout" "endl;

cout" "endl;

cout" "endl;

system("pause");

}

}

else

{

system("cls");

system("color 2e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" "" 身份确认失败"endl;

cout" "" 是否重新确认!"endl;

cout" ""重新确认请按请按1,放弃请按0"endl;

cout" ";

cinh;

if(h==0) l=0;

if(h==1)

{

system("cls");

system("color 2e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""请再次输入口令:";

cini;

}

}

}

}

void studentland() //学生登陆函数

{

int h;

char l='y';

while(l=='y')

{

system("cls");

system("color 3e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""****** ""|输出藏书信息,请按1 | ""******"endl;

cout" ""****** ""|查询图书馆的总信息,请按2| ""******"endl;

cout" ""****** ""|按书名查找图书,请按3 | ""******"endl;

cout" ""****** ""|查询读者的信息,请按4 | ""******"endl;

cout" "" ****** ""|返回上一级菜单,请按0 | ""******"endl;

cout"请选择您将执行的操作:";

cinh;

if(h=0h5)

switch(h)

{

case 0:

l='n';

break;

case 1:outbookinf();

system("pause");

break;

case 2:libary();

system("pause");

break;

case 3:searchbook();

system("pause");

break;

case 4:seachreader();

system("pause");

break;

}

else

{

system("cls");

system("color 4e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""您的操作是无效的!!!!"endl;

system("pause");

}

}

}

void main() // 主函数

{

int h,l=1;

while(l)

{

system("cls");

system("color 7c");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""图书管理系统"endl;

cout" "endl;

cout" "endl;

cout" ------------------"endl;

cout" ""||管理员登陆 请按1||"endl;

cout" ""||学生登陆 请按2 ||"endl;

cout" ""||退出系统 请按0 ||"endl;

cout" -------------------"endl;

cout""endl;

cout" 请您选择登陆方式:";

cinh;

if(h=0h3)

{

switch(h)

{

case 0:

cout"谢谢光临本图书馆!"endl;

exit(0);

case 1:

Librarianland();

system("pause");

break;

case 2:

studentland();

system("pause");

break;

}

}

else

{

system("cls");

system("color 4e");

cout" "endl;

cout" "endl;

cout" "endl;

cout" ""您的操作是无效的!!!!"endl;

system("pause");

}

}

}

图书馆的管理系统。

求任意字节源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于字节码编程、求任意字节源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/27289.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载