![]() |
#2
yuccn2014-09-11 13:10
|
详细点
这样我自己再研究一下
最好注释有这个函数的用法等等
谢谢了
1、流式IO(一)
编写C++程序完成以下功能:
(1)使用ofstream 向一个文本文件中输出各种类型的数据,并打开文件观察结果:
整数、无符号整型、长整型、浮点型、字符串、……
(2)用十进制、八进制、十六进制方式向文本文件中输出整数;
(3)使用控制符和成员函数来控制输出的格式:
set() precision() ...

#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
main()
{
int x,j,i=1;
char a;
int s[50];
ofstream output("print.txt"); //创建文件
cout<<"Please enter end with #."<<endl;
cin>>a;
while(a!='#')
{
output.write((char*)&a,sizeof(a)); //写入文件
cin>>a;
}
cout<<"Enter integers,end with 0."<<endl;
cin>>x;
output<<endl<<"十进制为:"<<endl;
while(x!=0)
{
s[i]=x;
output<<x<<" ";
cin>>x;
i+=1;
}
output<<endl<<"八进制为:"<<endl;
for(j=0;j<i;j++)
{
output<<oct<<s[j]<<" ";
}
output<<endl<<"十六进制为:"<<endl;
for(j=0;j<i;j++)
{
output<<hex<<s[j]<<" ";
}
output.close(); //关闭文件
system("pause");
}
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
main()
{
int x,j,i=1;
char a;
int s[50];
ofstream output("print.txt"); //创建文件
cout<<"Please enter end with #."<<endl;
cin>>a;
while(a!='#')
{
output.write((char*)&a,sizeof(a)); //写入文件
cin>>a;
}
cout<<"Enter integers,end with 0."<<endl;
cin>>x;
output<<endl<<"十进制为:"<<endl;
while(x!=0)
{
s[i]=x;
output<<x<<" ";
cin>>x;
i+=1;
}
output<<endl<<"八进制为:"<<endl;
for(j=0;j<i;j++)
{
output<<oct<<s[j]<<" ";
}
output<<endl<<"十六进制为:"<<endl;
for(j=0;j<i;j++)
{
output<<hex<<s[j]<<" ";
}
output.close(); //关闭文件
system("pause");
}
3、流式IO(三)
编写C++程序完成以下功能:
(1)输入一个文本文件名;
(2)打开文件名,在该文件的每一行前面加上一个行号,保存在另外一个文本文件中。

#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
main()
{
int i=1;
string s;
ifstream input("in.txt"); //输入文件和输出文件
ofstream output("out.txt");
if(!input)
{
cout<<"error:cannot open input file"<<endl;
}
else
while(getline(input,s))
{
cout<<s<<endl;
output<<"("<<i<<")"<<s<<endl;//添加行号
i+=1;
}
system("pause");
}
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
main()
{
int i=1;
string s;
ifstream input("in.txt"); //输入文件和输出文件
ofstream output("out.txt");
if(!input)
{
cout<<"error:cannot open input file"<<endl;
}
else
while(getline(input,s))
{
cout<<s<<endl;
output<<"("<<i<<")"<<s<<endl;//添加行号
i+=1;
}
system("pause");
}
1、电话本
编写C++程序完成以下功能:
(1)实现简单电话本功能,用姓名来搜索电话号码;
(2)用户输入姓名,程序查找并输出结果;
(3)用户可以通过输入,添加姓名和电话号码;
(4)用户可以删除姓名和电话号码;
(5)电话本可以保存在指定文件中;
(6)电话可被从指定文件中读入到内存。

#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>
#include <stdlib.h>
using namespace std;
/*void addPhone(string n,phone *ptr,int len);
void deletePhone(string n,phone *ptr,int len);
phone* searchPhone(string n,phone *ptr,int len);*/
class phone
{
private:
string name;
string number;
public:
phone(){};
string getname(){return name;}
string getnumber(){return number;}
void setname(string n){name=n;}
void setnumber(string a){number=a;}
};
int input(phone ptr[])
{ int i=0,a,a1;
string n,n1;
ifstream fin("input.txt");
while(!fin.eof())
{
getline(fin,n,' ');
getline(fin,n1,' ');
ptr[i].setname(n);
ptr[i].setnumber(n1);
i++;}
return i;}
void output(phone ptr[],int len)
{ ofstream fout("output.txt");
fout<<"电话本程序输出测试:"<<endl;
for(int i=0;i<len;i++)
fout<<"姓名:"<<ptr[i].getname()<<endl<<"电话:"<<ptr[i].getnumber()<<endl;
}
void coutput(phone ptr[],int len)
{ for(int i=0;i<len;i++)
cout<<"姓名:"<<ptr[i].getname()<<endl<<"电话:"<<ptr[i].getnumber()<<endl;}
phone * searchPhone(string n,phone* ptr,int len)
{for(int i=0;i<len;i++)
if(n==(ptr+i)->getname())
//cout<<"the number of"<<n<<"is"<<(ptr+i)->getnumber>>endl;
{return (ptr+i); break;}
return NULL;
}
void addPhone(string n,phone *ptr,int len)
{ string a;
ptr[len].setname(n);
cout<<"请输入该联系人的电话号码:"<<endl;
cin>>a;
ptr[len].setnumber(a);
++len;
cout<<"该联系人已经创建."<<endl;}
void deletePhone(string n,phone *ptr,int len)
{phone *p=searchPhone(n,ptr,len);
int m=p-ptr;
for(int i=1;i<=len-m-1;i++)
ptr[m+i-1]=ptr[m+i];
cout<<"该联系人已经删除"<<endl;
}
int main()
{int len=0,a;
phone ptr[100];
phone * px;
cout<<"********************************电话本程序************************************"<<endl<<endl<<"是否需要文件读取联系人信息?"<<endl<<" 1.需要。2。不需要(手动输入):"<<endl;
cin>>a;
if(a==1)
{len=input(ptr);
cout<<"文件读取成功!"<<endl<<endl;}
cout<<"********************请输入你想执行的操作(输入操作前号码)********************"<<endl;
cout<<"* 1.添加联系人。 2.删除联系人。 *"<<endl;
cout<<"* 3.查找联系人。 4.文件输出 *"<<endl;
cout<<"* 5.屏幕输出。 6.结束程序。 *"<<endl;
cout<<"******************************************************************************"<<endl;
cin>>a;
while(a!=6)
{
if(a==1)
{ string n;
cout<<"请输入你想添加的联系人的姓名:";
cin>>n;
addPhone(n,ptr,len);
len++;}
if(a==2)
{
string n;
cout<<"请输入你想删除的联系人的姓名:";
cin>>n;
deletePhone(n,ptr,len);
len--;}
if(a==3)
{
string n;
cout<<"请输入你想查找的联系人的姓名:";
cin>>n;
px=searchPhone(n,ptr,len);
if(px!=NULL)
cout<<"该联系人的号码是:"<<px->getnumber()<<endl;
if(px==NULL)
cout<<"无此联系人"<<endl;
px=NULL;
}
if(a==4)
{output(ptr,len);
cout<<"文件已输出到output.txt"<<endl;}
if(a==5)
{coutput(ptr,len);}
cout<<endl;
cout<<"********************请输入你想执行的操作(输入操作前号码)********************"<<endl;
cout<<"* 1.添加联系人。 2.删除联系人。 *"<<endl;
cout<<"* 3.查找联系人。 4.文件输出 *"<<endl;
cout<<"* 5.屏幕输出。 6.结束程序。 *"<<endl;
cout<<"******************************************************************************"<<endl;
cin>>a;
}
cout<<"谢谢你的使用。"<<endl;
system("pause");
return 0;
}
#include<iomanip>
#include<fstream>
#include<string>
#include <stdlib.h>
using namespace std;
/*void addPhone(string n,phone *ptr,int len);
void deletePhone(string n,phone *ptr,int len);
phone* searchPhone(string n,phone *ptr,int len);*/
class phone
{
private:
string name;
string number;
public:
phone(){};
string getname(){return name;}
string getnumber(){return number;}
void setname(string n){name=n;}
void setnumber(string a){number=a;}
};
int input(phone ptr[])
{ int i=0,a,a1;
string n,n1;
ifstream fin("input.txt");
while(!fin.eof())
{
getline(fin,n,' ');
getline(fin,n1,' ');
ptr[i].setname(n);
ptr[i].setnumber(n1);
i++;}
return i;}
void output(phone ptr[],int len)
{ ofstream fout("output.txt");
fout<<"电话本程序输出测试:"<<endl;
for(int i=0;i<len;i++)
fout<<"姓名:"<<ptr[i].getname()<<endl<<"电话:"<<ptr[i].getnumber()<<endl;
}
void coutput(phone ptr[],int len)
{ for(int i=0;i<len;i++)
cout<<"姓名:"<<ptr[i].getname()<<endl<<"电话:"<<ptr[i].getnumber()<<endl;}
phone * searchPhone(string n,phone* ptr,int len)
{for(int i=0;i<len;i++)
if(n==(ptr+i)->getname())
//cout<<"the number of"<<n<<"is"<<(ptr+i)->getnumber>>endl;
{return (ptr+i); break;}
return NULL;
}
void addPhone(string n,phone *ptr,int len)
{ string a;
ptr[len].setname(n);
cout<<"请输入该联系人的电话号码:"<<endl;
cin>>a;
ptr[len].setnumber(a);
++len;
cout<<"该联系人已经创建."<<endl;}
void deletePhone(string n,phone *ptr,int len)
{phone *p=searchPhone(n,ptr,len);
int m=p-ptr;
for(int i=1;i<=len-m-1;i++)
ptr[m+i-1]=ptr[m+i];
cout<<"该联系人已经删除"<<endl;
}
int main()
{int len=0,a;
phone ptr[100];
phone * px;
cout<<"********************************电话本程序************************************"<<endl<<endl<<"是否需要文件读取联系人信息?"<<endl<<" 1.需要。2。不需要(手动输入):"<<endl;
cin>>a;
if(a==1)
{len=input(ptr);
cout<<"文件读取成功!"<<endl<<endl;}
cout<<"********************请输入你想执行的操作(输入操作前号码)********************"<<endl;
cout<<"* 1.添加联系人。 2.删除联系人。 *"<<endl;
cout<<"* 3.查找联系人。 4.文件输出 *"<<endl;
cout<<"* 5.屏幕输出。 6.结束程序。 *"<<endl;
cout<<"******************************************************************************"<<endl;
cin>>a;
while(a!=6)
{
if(a==1)
{ string n;
cout<<"请输入你想添加的联系人的姓名:";
cin>>n;
addPhone(n,ptr,len);
len++;}
if(a==2)
{
string n;
cout<<"请输入你想删除的联系人的姓名:";
cin>>n;
deletePhone(n,ptr,len);
len--;}
if(a==3)
{
string n;
cout<<"请输入你想查找的联系人的姓名:";
cin>>n;
px=searchPhone(n,ptr,len);
if(px!=NULL)
cout<<"该联系人的号码是:"<<px->getnumber()<<endl;
if(px==NULL)
cout<<"无此联系人"<<endl;
px=NULL;
}
if(a==4)
{output(ptr,len);
cout<<"文件已输出到output.txt"<<endl;}
if(a==5)
{coutput(ptr,len);}
cout<<endl;
cout<<"********************请输入你想执行的操作(输入操作前号码)********************"<<endl;
cout<<"* 1.添加联系人。 2.删除联系人。 *"<<endl;
cout<<"* 3.查找联系人。 4.文件输出 *"<<endl;
cout<<"* 5.屏幕输出。 6.结束程序。 *"<<endl;
cout<<"******************************************************************************"<<endl;
cin>>a;
}
cout<<"谢谢你的使用。"<<endl;
system("pause");
return 0;
}