写了一个C++关于文件读写的程序,不知道哪里错了,希望各位帮帮忙

定义一个学生类,包含学生的学号、姓名和成绩的基本信息,将学生信息写入二进制文件student.dat中,实现对学生信息的显示、查询和删除等基本功能。

我写完之后查询和删除的功能,都有问题

下面是代码
1. 这是Sdudent.h
#ifndef STUDENT_H
#define STUDENT_H
#include
#include
using namespace std;
class Student
{
friend ostream& operator<<(ostream &output,Student &stu);
public:
Student(string xs_ID,string x_name,int x_grade);
string gets_ID();
string getname();
int getgrade();
// void show();
private:
string s_ID;
string name;
int grade;

};
#endif STUDENT_H
2.这是Sdudent.cpp
#include"Student.h"
Student::Student(string xs_ID,string x_name,int x_grade)
{
s_ID=xs_ID;
name=x_name;
grade=x_grade;
}
string Student::gets_ID()
{
return s_ID;
}
string Student::getname()
{
return name;
}
int Student::getgrade()
{
return grade;
}
ostream& operator<<(ostream &output,Student &stu)
{
output<<"学号:"< return output;
}
3.这是主函数,我命名为SMS.cpp
#include
#include
#include
#include"Student.h"
int main()
{
int i;
//写入
Student st[2]={Student("1605112","Alan ",88),Student("1605113","Spurs",76)};
fstream outf("Students.dat",ios::out|ios::binary|ios::trunc);
if(!outf)
{
cerr<<"Students.dat open error!"<<endl;
abort();
}
for(i=0;i<2;i++)
{
outf.write((char *)&st[i],sizeof(st[i]));
}
outf.close();

//读入并显示
fstream inf("Students.dat",ios::in|ios::binary|ios::trunc);
for(i=0;i<2;i++)
{
    inf.read((char*)&st[i],sizeof(Student));
    cout<<st[i];    
}
inf.close();

//显示

// inf.open("Students.dat",ios::in|ios::binary|ios::trunc);
// for(i=0;i<2;i++)
// {
// cout<<st[i];
// }
// inf.close();

//查询
inf.open("Students.dat",ios::in|ios::binary|ios::trunc);
cout<<"输入要查找学生序列号:";
int k;
cin>>k;
int p=(k-1)*sizeof(Student);
inf.seekg(p);
inf.read((char*)&st[i],sizeof(Student));
cout<<st[i]; 
inf.close();

//删除
cout<<"输入要删除学生序号:";
int n;
cin>>n;
inf.open("Students.dat",ios::in|ios::binary);
for(i=0;i<2;i++)
    {
        if(i!=n-1)
        outf.write((char*) &st[i],sizeof(st[i]));
    }
outf.close();
inf.open("Students.dat",ios::in|ios::binary);
for(i=0;i<1;i++)
{
    inf.read((char*)&st[i],sizeof(Student));
    cout<<st[i]; 
}
inf.close();


return 0;

}

0

3个回答

1
qq_36824130
qq_36824130 那我的这个错误在哪啊
2 年多之前 回复
//cout<<st[i];   修改如下

 cout<<st[0].getname()<<endl;
0
qq_36824130
qq_36824130 我重载之后和下一行有什么区别啊
2 年多之前 回复
 ostream& operator<<(ostream &output,Student &stu)
 {
 output<<"学号:"< return output;
 }
 //还是这里写错了???

 那你看到输出了??
0
qq_36824130
qq_36824130 显示的功能是正常输出了,剩下的就是乱码
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
TXT在线小说管理器
不知道哪里写错了,各位大神帮忙指点下,告诉怎么进行修改
SPIN控件的使用问题
我的程序哪里错了为什么不能调节,,不知道哪里出错了,请大家看看,要写20字真是烦人
手写PE结构,提示不是有效的win32程序
自己模仿别人的写的,不知道哪里出错了,希望可以帮下
帮帮忙,不知道哪里错了!
html中的代码:rnrn rnrn rn 入社希望条件 rn 貴方の希望勤務地、入社分類、希望職種をお聞かせ下さい。 rn 検索ボタンをクリックするとそれらに関する情報が分かります。rn rn rn rn rn rn rn rn rn  希望勤務地rn rn 希望勤務地を選択してください。 rn 東京本社rn 日立支社rn rn rn rn 入社分類rn rn 入社分類を選択してください。 rn 新卒rn 中途rn rn rn rn 希望職種rn rn 希望職種を選択してください。 rn 技術職rn rn rn rnrn rn rn rn rn rn rn rn rnrnrnrnrnjs中的代码:rnrn function kensaku1(No1,No2,No3)rn if (No1.options[No1.selectedIndex].value=="1" && No2.options[No2.selectedIndex].value=="1" && No3.options[No3.selectedIndex].value=="2") rn window.location.href="tousingi.html";rn rn else if (No1.options[No1.selectedIndex].value=="1" && No2.options[No2.selectedIndex].value=="2" && No3.options[No3.selectedIndex].value=="2")rn window.location.href="toutyuugi.html";rn rn else if (No1.options[No1.selectedIndex].value=="2" && No2.options[No2.selectedIndex].value=="1" && No3.options[No3.selectedIndex].value=="2")rn window.location.href="hisingi.html";rn rn else if (No1.options[No1.selectedIndex].value=="2" && No2.options[No2.selectedIndex].value=="2" && No3.options[No3.selectedIndex].value=="2")rn window.location.href="hityuugi.html";rn rn elsern alert("項目を選択してください。");rn rn rn rn出现的问题:rn浏览器左下方有黄的三角号,点开说エラー:document.MyForm.se1はnullまたはプロジェクトではありません.rn意思就是说document.MyForm.se1的值为null或者没有工程。rn大家帮帮忙啊,小问题,不会!!
ajax错误解图
这个市我的ajax错误解图。不知道哪里错了
UVA12412师兄帮帮忙
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #define EPS 1e-5 int N; struct student { int glass; char s[120],name[120]; int Chinese,Math,English,Program,Sum...
开发网页,不知道js出错在哪怎么办??
一句话,简单,F12调出调试窗口,esc键,要什么错误有什么错误。哎~~
eigrp实验报告
cisco eigrp 各位帮帮忙 帮帮忙 谢谢哈
labview 串口
labview 串口 还有点问题 我不知道怎么弄了 ,求各位帮帮忙
我编了一个程序不知道那李出了错请大家看看
我编了一个程序不知道那李出了错请大家看看,请大家帮帮忙啊!
C问题,有个程序不知道哪里错了,大虾帮帮忙
#includernmain()rnrn double raduis,zc,area;rn printf("Please enter a raduis of the cricle:");rn scanf("%f",&raduis);rn zc=2*3.14*raduis;rn area=3.14*raduis*raduis;rn printf("zc=%f,area=%f",zc,area);rnrnrn为什么不能用double的?
经典c程序 (0001)--取一个三位整数各位的数字
工作了3年,反而把C语言落下了,真是不该,以后每天至少要写一个小程序,练手. /************************************************************************************** * Function        : test * Create Date  : 2014/03/12 * Author
C语言写了一个程序,查了几遍看不出来错误
#include"stdio.h" void main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][3]; int *p1=a,*p2=b; int x1=0,x2; while(x1     x2=0;     while(x2         *(*(p2+x2)+x1)=*(*(p1+x1)+x1);     
关于3D环境的建立和渲染代码
 MyActor类环境摄像机和模型import javax.microedition.lcdui.game.GameCanvas;import javax.microedition.m3g.Camera;public class MyActor{ private Camera m_Camera; private float m_fRot; private
stormliv.exe错误
不知道什么弄,帮帮忙
算法竞赛入门经典(第2版)例题4-6 师兄帮帮忙 (A Typical Homework UVa 12412)
这道例题书上要求自己补全daim有个bug卡了我
输出整数各位数字(c语言 )
本题要求编写程序,对输入的一个整数,从高位(低位)开始逐位分割并输出它的各位数字。 输入格式: 输入在一行中给出一个长整型范围内的非负整数。 输出格式: 从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。 输入样例: 123456 输出样例: 1 2 3 4 5 6 (6 5 4 3 2 1) 正序输出,代码如下: #include&amp;lt;stdio.h&amp;gt; int main() {...
【编程语言】C语言文件(包括:文件各种读写方式)
文件概述 文件是指存储在外部存储器上的数据集合。更准确的来说,文件就是一组相关元素或数据的有序集合,而且每个集合都有一个符号化的指代,称这个符号化的指代为文件名。 文件类型 根据文件在外部存储器上的组织形式,文件可以分为ASCII文件和二进制文件。 ASCII文件(文本文件):以字符的方式进行存储,一个字符对应一个ASCII码,而一个ASCII码占用1字节。例如:整数12在内存中占用4个字...
NotepadAlarmDemo
带有闹钟提醒的记事本,记事本与闹钟提醒都做好了,可在点击闹钟提醒跳转时出错整个程序代码没错误,不知道哪里有问题,各位大侠看看到底是哪里出错了。
palindrome
各位帮帮忙吧
输出一个数字各个位数字之和
1.逐位相加 /** 问题描述:输入一个数字,实现把数字的每位加起来 * 问题分析:对10取余,得到最低位数,加,然后将该数除10,直到该数为0 * 作者:李孝武 * 时间:2015.01.06 */ #include using namespace std; int main() { int s,sum=0; cin>>s; while(s!=0)
一个简单的程序不知道哪里错了
#include "stdio.h"rnvoid main()rnrn int day,month,year,sum,leap;rn printf("plaese input year,month,day\n");rn scanf("%d,%d,%d",&year,&month,&day);rn switch(month)rn rn case 1:sum=0;break;rn case 2:sum=31;break;rn case 3:sum=59;break;rn case 4:sum=90;break;rn case 5:sum=120;break;rn case 6:sum=151;break;rn case 7:sum=181;break;rn case 8:sum=212;break;rn case 9:sum=243;break;rn case 10:sum=273;break;rn case 11:sum=304;break;rn case 12:sum=334;break;rn default:printf("data error");break;rn rn sum=sum+day;rn if(yaer%400==0||(year%4==0 && yaer%100!=0))rn leap=1;rn elsern leap=0;rn if(leap==1&&mouth>2)rn sum++;rn printf("it is the %dth day",sum);rnrn
求救一个简单的程序,不知道哪里错了
<%@ import NameSpace="System.IO" %>rn<%@ Import Namespace="System.Data" %>rnrnrnrn rnrnrnrnrnrn
一个图片上传程序,我不知道哪里错了
formdata=request.binaryread(formsize)rnbncrlf=chrB(13) & chrB(10)rndivider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)rndatastart=instrb(formdata,bncrlf & bncrlf)+4rndataend=instrb(datastart+1,formdata,divider)-datastartrnmydata=midb(formdata,datastart,dataend)rn..............rnrnrnrnrnrn <%rnDim SQLStrrnSQLStr="Update pic set [index] = 0 Where user_id =" & Session("u_id")rnconn.execute (SQLStr)rnSet rs = Server.CreateObject("ADODB.Recordset")rnrs.Open "pic",conn,3,2rnrs.addnewrnrs("big").appendchunk mydatarnrs("user_id")=session("u_id")rnrs("size")=formsizernrs("date")=now()rnrs("index")=1rnrs.updaternrnset rs=nothingrnset conn=nothingrn%> rnrn提示错误是:rn[Microsoft][ODBC SQL Server Driver][SQL Server]在关键字 'index' 附近有语法错误。
程序不知道哪里出错了
从网上找了段代码 test_05_04.txt的内容为1|2|3|4rn a|b|c|drnvoid CWCDMA_05_04Dlg::OnButton1() rnrn // TODO: Add your control notification handler code herern CStdioFile file; rnfile.Open( " C://Xworkspace//test_05_04.txt",CFile::modeReadWrite); rnCString sLine; rnBOOL bRead = file.ReadString(sLine); rnwhile(bRead == TRUE) rn rn //UpdateData(TRUE);rn CString sInfo;rn int nPos= sInfo.Find('|'); rn sInfo= sLine.Left(nPos); rn int nIdx = m_ListDisplay.InsertItem(m_ListDisplay.GetItemCount(),sInfo); rn sLine = sLine.Mid(nPos+1); rn nPos = sLine.Find('|'); rn sInfo = sLine.Left(nPos); rn m_ListDisplay.SetItemText(nIdx,1,sInfo); rn sLine = sLine.Mid(nPos+1); rn nPos = sLine.Find('|'); rn sInfo = sLine.Left(nPos); rn sLine = sLine.Mid(nPos+1); rn m_ListDisplay.SetItemText(nIdx,2,sInfo); rn m_ListDisplay.SetItemText(nIdx,3,sLine); rn bRead = file.ReadString(sLine); rn rnfile.Close();rnrn调试没问题 但是一按button1 就崩溃了 不能显示txt中的内容 rnrn请问是哪里出错了??
程序不知道哪里出错了?
package test;rnrnimport java.awt.Color;rnimport java.awt.Frame;rnimport java.awt.Graphics;rnimport java.awt.Point;rnimport java.awt.event.MouseAdapter;rnimport java.awt.event.MouseEvent;rnimport java.util.ArrayList;rnimport java.util.Iterator;rnrnpublic class Main rn public static void main(String[] args) rn new MyFrame("ly");rn rnrnrnclass MyFrame extends Frame rn private ArrayList pointsList;rnrn public MyFrame(String s) rn super(s);rn setBounds(200, 200, 500, 400);rn setVisible(true);rn addMouseListener(new Mouse());rn rnrn @Overridern public void paint(Graphics g) rn Color oldColor = g.getColor();rn Iterator i = pointsList.iterator();rn try rn while (i.hasNext()) rn g.fillOval(i.next().x, i.next().y, 5, 5);rn rnrn catch (Exception e) rn // TODO: handle exceptionrn rn g.setColor(oldColor);rn rnrn public ArrayList getPointsList() rn return pointsList;rn rnrnrnclass Mouse extends MouseAdapter rn @Overridern public void mouseClicked(MouseEvent e) rn MyFrame f = (MyFrame) e.getSource();rn f.getPointsList().add(e.getPoint());rn f.repaint();rn rn
汪国真的爱情诗
汪国真的爱情诗   |字号 订阅 汪国真的爱情诗     认识你的时候   也就刻下你的名字   问青山思恋几许   岁月有多久   记忆便有多久      何必幽径谈画   你就是一幅丹青   何必月下吟诗   你就是一首蝶恋花   恨你   也爱你   恨,就
C语言计算-32768~+32767中任意整数(有键盘输入)中各位奇数的平方和
//计算-32768~+32767中任意整数(有键盘输入)中各位奇数的平方和 /* 分析: 若我们输入的a=12345 第一次取模 b=a%10=5 取个位 a=a/10=1234 第二次取模 b=a%10=4 取十位 a=a/10=123 第三次取模 b=a%10=3 取百位 a=a/10=12 */ #include&lt;stdio.h&gt; main() { in...
C语言之基本算法30—数组的灵活应用(一个正整数的各位数字平方和)
//数组的灵活应用! /* ===================================================== 题目:求任意输入一个正整数各位数字的平方和,显示如下: 如输入1234,则显示 1*1+2*2+3*3+4*4=30 ===================================================== */
(递归)某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 import java.util.Scanner; /** * 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 * */ public class LetterWrong { static int n; static int[] arr
某个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种?
(递归)某个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种?#include &amp;lt;stdio.h&amp;gt; int fun(int n){ if(n==0||n==1) return 0; if(n==2) return 1; else{ return (n-1)*(fun(n-1)+fun(n-2)); } } int m...
编写程序计算1到1000的整数各位数字之和
import java.util.*; public class Area{ public static void main(String[] args){ int total=0; System.out.println("输入一个1到1000之间的一个整数"); Scanner input=new Scanner(System.in); int number=input.nex
酒店管理系统
这是一个酒店管理系统,第一次做的,不知道哪里还有问题,要是哪里做得不好希望点评给意见,谢谢
C小程序—文件操作,C程序读写文件、配置文件读写案例
1.文件操作(1)按字符写入文件#define _CRT_SECURE_NO_WARNINGS #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;stdio.h&amp;gt; void main() { int i = 0; FILE *fp = NULL; char *filename...
程序设计
是一个关于如何怎样设计一个电子程序的文档,我觉得还行,不知道各位觉得怎样..
众数的程序(使用到快速排序)
以下这个众数的程序,帮忙看下哪里出错了?
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况?
我这里用两种方法: 1.第一种是高中的全错位排列公式:S=n!(1-1/1!+1/2!-1/3!+...(-1)^n/n!) C++代码如下: #include using namespace std; int main() { int n; cout<<"请输入n:"; cin>>n; int t=1, s=1, sum=0; for(int
电脑中有些软件不知道安装在哪,也无法卸载,怎么办
今天电脑还原系统后,有些软件的安装目录都删了,但是快速启动栏中还是有这个软件,而且找不到其安装目录,控制面板和360都无法卸载,也无法安装新的此种软件,于是下载了一款软件:Windows Install Clean Up,从中选中软件,卸载即可,很管用。
一个不知道哪里错了的问题- -!
首先是login登入窗体。。。登入的时候。。先检查数据库的Sy表是否存在注册码。。如果不存在弹出软件注册的窗口。如果存在。。进行校对。。如果错误。弹出软件注册的窗口。如果对。。那么就可以登入rnrnlogin窗体的代码rn[code=Delphi(Pascal)]rnprocedure TFlogin.FormCreate(Sender: TObject);rnvarrn a,b:string;rnbeginrna:=NBGetAdapterAddress(0); 获得机器码rn with dm.aq_1 dorn beginrn close;rn sql.Clear;rn sql.Add('select * from Sy where S_Jname='''+a+'''');rn open;rn if eof thenrn beginrn fregister:=Tfregister.create(application);rn fregister.ShowModal;rn Flogin.Hide;rn endrn elsern beginrn b:=fieldbyname('S_key').AsString;rn if GenRegCode(a)<>b then 这是校对保存的注册码是否和现在的机器码产生的注册码一样rn beginrn application.MessageBox('注册码不正确','提示信息');rn fregister:=Tfregister.create(application);rn fregister.ShowModal;rn Flogin.Hide;rn endrn end;rn end;rnend;[/code]rnrn以上貌似可以运行rn下面是注册窗体的代码rn[code=Delphi(Pascal)]rnprocedure TFregister.SpeedButton2Click(Sender: TObject);rnbeginrn Fregister2.Show;rn Fregister.close;rnend;[/code]rn就是这里。。当按这个按钮的时候。。就出错。。rnaccess violation at address 00459F92 in module 'shop.exe'.read of address 000002f4rnrndelphi所指向错误的地方确实login窗体的Flogin.Hide; rnrn说明下:我数据库是空的
一个搞笑的C程序,加密解密的,不知道哪里出错了……
今天弄了一下这个加密解密的程序,不知道哪里有问题,一下是代码和我用不同的字符串和加密数字测试的截图。请各位高手解析一下!谢谢……rnrn[img=http://img.my.csdn.net/uploads/201303/21/1363881103_3681.PNG][/img]rnrn[img=http://img.my.csdn.net/uploads/201303/21/1363881103_9073.PNG][/img]rnrn[img=http://img.my.csdn.net/uploads/201303/21/1363881051_6183.PNG][/img]rnrn[img=http://img.my.csdn.net/uploads/201303/21/1363881051_7222.PNG][/img]rnrn[img=http://img.my.csdn.net/uploads/201303/21/1363881051_3085.PNG][/img]rn下面这个是对应上面的情况运行的结果截屏,并没有全部显示一句话,到y那里就停了,而且只要把y或x放到前面的那个位置,就只显示到y或x的前一个位置的字符:rn[img=http://img.my.csdn.net/uploads/201303/21/1363881051_3992.PNG][/img]rn当密钥1改成89后又出现问题了……rn[img=http://img.my.csdn.net/uploads/201303/21/1363881051_4603.PNG][/img]rnrnrn快搞崩溃了……请各位大神指教啊……rnrnrn#includern#includernrnint cipt[256][3]; //定义全局二维数组cipt,cipt[0]作为标志,为1则为密钥,cipt[1]和cipt[2]用来存储密钥rnrnint fcreatcip(char *fname)rnrn FILE *fp; [color=#FF0000][b][size=14px]//以下三个字符串为测试的,但为何出现的效果差别很大????[/size][/b][/color]rn[color=#0000FF]//字符串1[/color]rn// char c,*str="Evidence of India's slowing economy can be seen from local car dealerships - where auto sales are set to decrease for the first time in 10 years - to job training workshops where unemployed young people like Yogesh Dahiya get interview advice. The New Delhi resident says finding a job in India's retail sector is tough.";rn[color=#0000FF]//字符串2[/color]rn// char c,*str="Evidence of slowing India's economy can be seen from local - car dealershipswhere auto sales are set to decrease for the first time in 10 years - to job training workshops where unemployed young people like Yogesh Dahiya get interview advice. The New Delhi resident says finding a job in India's retail sector is tough.";rn[color=#0000FF]//字符串3[/color]rn// char c,*str="India's Good - morning,deayr professors,It's my great honor to have this chance to be here for this interview.First,I would like to briefly introduce myself.";rn int k=1;rn int cip[3]=1,99,19;rn/* printf("请输入加密密钥:\n");rn printf("cip1=");rn scanf("%d",&cip[1]);rn printf("cip2=");rn scanf("%d",&cip[2]);rn*/rn fp=fopen(fname,"w+");rn if(!fp)rn rn printf("File open ERROR !\n");rn exit(0);rn rn dorn rn if(k%2!=0) c=*str^cip[1]; //如果是奇数位则和cip[1]异或rn else c=*str^cip[2]; //如果是偶数位则和cip[2]异或rn fputc(c,fp);rn str++;rn k++;rn while(*str!='\0');rn printf("Creat File OK !\n");rn fclose(fp);rn return 1;rnrnrnint isnorcharacter(char c) //判断从文件处理后的字符是否为正常的英文文章中的常见字符,这里简单处理。rnrn if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c>='1'&&c<='9')||c==' '||c=='\''||c=='\"'||c==','||c=='.'||c=='!'||c==':'||c==';'||c=='?'||c=='-'||c=='['||c==']'||c=='('||c==')')rn return 1;rn else return 0;rnrnrnint iscip(char *fname) //查找密钥rnrn rn int i,j,k,n=0;rn FILE *fp;rn char c,ct;rn fp=fopen(fname,"r");rn if(!fp)rn rn printf("File open ERROR ! ");rn exit(0);rn rn for(i=0;i<256;i++) //循环暴力破解rn rn for(j=0;j<256;j++)rn rn cipt[n][0]=1;rn cipt[n][1]=i;rn cipt[n][2]=j;rn rewind(fp);rn c=fgetc(fp);k=1;rn while(!feof(fp))rn rn if(k%2!=0) ct=c^cipt[n][1]; //如果是奇数位则和cip[1]异或rn else ct=c^cipt[n][2]; //如果是偶数位则和cip[2]异或rn if(!isnorcharacter(ct))rn rn cipt[n][0]=0; //不是密钥rn break; //测试下一个密钥rn rn c=fgetc(fp);k+=1;rn rn if(cipt[n][0]) //如果破解成功rn rn// fclose(fp);rn// return cip;rn n++;rn rn rn rn fclose(fp);rn return n;//cipt;rn // exit(0);rnrnrnvoid print(int cip[],char *fname) //根据密钥输出第一句话rnrn FILE *fp;rn char c,ct;rn int k;rn printf("可能的密钥:\ncip1=%d\ncip2=%d\n",cip[1],cip[2]);rn printf("要输出的第一句话为:\n");rn fp=fopen(fname,"r");rn if(!fp)rn rn printf("File open ERRER ! ");rn exit(0);rn rn c=fgetc(fp);k=1;rn while(!feof(fp))rn rn if(k%2!=0) ct=c^cip[1];rn else ct=c^cip[2];rn if(ct!='.'&&ct!='!'&&ct!='\?') //如果不是一句话的结束则继续循环输出rn putchar(ct); //否则输出后退出循环rn c=fgetc(fp);k+=1;rn rn elsern rn putchar(ct);rn break;rn rn rn putchar('\n');rn fclose(fp);rnrnrnvoid main()rnrn char *fname="d:\\tfile\\info.txt";rn int i,j,cip[3]=0,0,0; //定义数组cip,cip[0]作为标志,为1则为密钥,cip[1]和cip[2]用来存储密钥rn int n,count=0;rnrn for(i=0;i<256;i++) //二维数组cipt的初始化rn for(j=0;j<3;j++)rn cipt[i][j]=0;rnrn fcreatcip(fname); //创建加密文件rn n=iscip(fname); //寻找密钥rn for(i=0;i<=n;i++) //循环输出所有密钥(最后输出的一个不是密钥)rn for(j=0;j<3;j++)rn rn printf("%d\t",cipt[i][j]);count++;rn if(count%9==0)rn printf("\n");rn rn printf("\n");rn for(i=0;cipt[i][0]==1;i++)rn rn cip[1]=cipt[i][1];rn cip[2]=cipt[i][2];rn print(cip,fname);//输出第一句话rn rn putchar('\n');rn
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 python文件读写教程