注册 登录
编程论坛 C++教室

c中二进制文件读取问题

chunchunge 发布于 2013-01-12 13:59, 426 次点击
各位帮忙看一下,有什么建议提提。让我头疼好久了。第四个不会写,哪位帮我补充一下。。。

#include <fstream>
#include <string>
using namespace std;
void input(void)
void clear(void)
void main()
{ struct phone
    {string mane;
     int num;
    }man[50];
 phone *p[50];
 
 int i,j,k,s,t;
for (i=0;i<=49;i++)
    p[i]=&man[i];
 while(true)
 {cout<<"请输入要进行的操作"<<endl;
 cout<<"1.输入电话记录"<<endl;
 cout<<"2.删除电话记录"<<endl;
 cout<<"3.查询电话记录"<<endl;
 cout<<"4.保存电话记录"<<endl;
 cout<<"5.读取电话记录"<<endl;
 cout<<"6.退出"<<endl;
 }
 cin >>i;
 switch(i)
 {case(1):{for(j=0;j<=49;j++)
             {if (p[j]->name=NULL& p[j]->nun=NULL)input(j);
            }
                break;
            }
 case(2):cout<<"请输入你要删除的编号:">>endl;
         cin>>k;
         if(p[k]->name=NULL& p[k]->nun=NULL)
             for(s=k;s<=50;s++)
                 p[k]=p[k+1];
 case(3):{ofstream outfile("file1.dat",ios::app|ios::binary);
         outfile.close()
         }
 case(4):
 case(5):{struct phone people[50]
            ifstream infile("file1.dat",ios::init|ios::binary);
            for(t=0;t<50;t++)
                infile.read(char*)&(people[t],sizeof(people[t]));
            infile.close();
            for(t=0;t<50;t++)
                cout<<people[t];
         }
 case(6):abort();
 }
}
void input(j)
{cin>>p[j]->name;
 cin>>p[j]->num;
 break;
}
9 回复
#2
cqu09142013-01-12 14:12
先把你的目的写下来
#3
rjsp2013-01-12 14:52
你这一坨代码烂到家了,=和==的不同我不说,我只问:你到底是想用C还是用C++?
#4
pauljames2013-01-13 11:22
cout都来了,算c++
#5
痴情的猪2013-01-13 11:25
应该是C++吧
#6
liqingqinger2013-01-13 20:06
貌似  学了C++半学期 输出确实用cout
#7
yaobao2013-01-13 23:11
楼上的手机不错啊
#8
liu1378002013-01-14 10:18
学习一下文件的读写吧!程序员必过的一关,不会不行的,不要总想着求代码!
#9
锋了2013-01-14 20:05
回复 7楼 yaobao
版主意思是人长得不错吧,嘿
#10
锋了2013-01-14 20:26
回复 楼主 chunchunge
代码分格有点不规范,还有我不赞成来这里叫人帮写的,如果自己写了遇到什么问题可以帮你解决这也是为了你好
就初略之处一点问题吧,再输入选择时应该确保输入的值在1---6之间,而且输入的不能是负数可以这样
do{
cout<<"1.输入电话记录"<<endl;
 cout<<"2.删除电话记录"<<endl;
 cout<<"3.查询电话记录"<<endl;
 cout<<"4.保存电话记录"<<endl;
 cout<<"5.读取电话记录"<<endl;
 cout<<"6.退出"<<endl;
cout<<"Please input your choise(1---6):";
cin>>i;
}while(i<1&&i>6);
还有不知道是不是我见识少,case有这样写的吗?case(1):?是case 1:的吧。
其它的就没时间看了


1