标题:求教通讯录管理系统怎么把输入的数据保存到记事本里面
只看楼主
chen0470121
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-1-21
结帖率:0
已结贴  问题点数:20 回复次数:3 
求教通讯录管理系统怎么把输入的数据保存到记事本里面
程序代码:
#include<iostream>
#include<vector>
#include<string>

using namespace std;

void save();

FILE *fp;
void save()
{
    char name[20]="aaa";
    int num=1;
    fp=fopen("a.txt","w+");
    fprintf(fp,"%s %d %s %s %s %s %d",temp.name,temp.number,temp.address,temp.danwei,temp.mail,temp.type,temp.QQ);
    fclose(fp);
}


struct information  
{
    string name;
    string number;
    string address;
    string danwei;
    string mail;
    string type; 
    string QQ;
    
};
int main()
{
        

 printf("\n");
         printf("\t\t\t **********通讯录*********\n");    
        printf("\t\t\t *1.输入联系人信息     *\n");
         printf("\t\t\t *2.查找联系人         *\n");
        printf("\t\t\t *3.修改联系人信息     *\n");
        printf("\t\t\t *4.按首字母排序     *\n");
        printf("\t\t\t *5.退出         *\n");
        printf("\t\t\t *************************\n");

 printf("\n"); 
    
    
    
    vector<information>aa;
    information temp;
    int n;
    cout<<"请输入要添加的人数:"<<endl;
    cin>>n;
                
    while(true)
    {
        int choice;
        cout<<"\t\t\t 1.输入联系人信息\t\t\t"<<endl;
        cout<<"\t\t\t 2.查找联系人\t\t\t"<<endl;
        cout<<"\t\t\t 3.修改联系人信息\t\t\t"<<endl;
        cout<<"\t\t\t 4.显示所有联系人\t\t\t"<<endl;
        cout<<"\t\t\t 5.退出\t\t\t"<<endl;
        
        while(true)
        {
            cin>>choice;
            if(choice<1||choice>5)
                cout<<"输入错误,继续输入"<<endl;
            else 
                break;
        }
        
        switch(choice)
        {
        case 1://输入联系人
            {
                for(int i=0;i!=n;++i)
                {
                    cout<<"请输入名字,电话号码,家庭住址,单位,分类,E-mail,QQ"<<endl;
                    cin>>temp.name>>temp.number>>temp.address>>temp.danwei>>temp.type>>temp.mail>>temp.QQ;
                    aa.push_back(temp);
                }
            }
            break;
            
            
        case 2:
            {
                cout<<"请输入你想查询的名字"<<endl;//查询联系人
                
                string name1;
                
                cin>>name1;
                bool flag=0;
                for(vector<information>::iterator k=aa.begin();k!=aa.end();++k)
                {
                    if((*k).name==name1)
                    {
                        cout<<(*k).name<<"  "<<(*k).number<<"  "<<(*k).address<<"  "<<(*k).danwei<<"  "<<(*k).mail<<"  "<<(*k).QQ<<endl;
                        flag=1;
                    }
                }
                if(!flag)
                    cout<<"查无此人"<<endl;
                }
            break;
        case 3://修改联系人
            {    
                string name2,address2,danwei2,mail2,number2,type2,QQ2;
                cout<<"请输入你想要修改的名字"<<endl;
                cin>>name2;
                for(vector<information>::iterator f=aa.begin();f!=aa.end();++f)
                {
                    if((*f).name==name2)
                    {
                        cout<<"请输入名字,电话号码,家庭住址,单位,分类,E-mail,QQ"<<endl;
                        cin>>name2>>number2>>address2>>danwei2>>type2>>mail2>>QQ2;
                        (*f).name=name2;
                        (*f).number=number2;
                        (*f).address=address2;
                        (*f).danwei=danwei2;
                        (*f).type=type2;
                        (*f).mail=mail2;
                        (*f).QQ=QQ2;
                        cout<<(*f).name<<"  "<<(*f).number<<"  "<<(*f).address<<"    "<<(*f).danwei<<"    "<<(*f).type<<"  "<<(*f).mail<<"  "<<(*f).QQ<<endl;
                    }
                }
            }
            break;
        case 4://排序
            {    
                string t1;
                vector<information>::iterator h;
                for ( h=aa.begin();h!=aa.end()-1;++h)
                {
                    for(vector<information>::iterator f=h+1;f!=aa.end();++f)
                    {
                        if((*h).name>(*f).name)
                        {
                            t1=(*h).name;
                            (*h).name=(*f).name;
                            (*f).name=t1;
                        }
                    }
                }
                for ( h=aa.begin();h!=aa.end();++h)
                    cout<<(*h).name<<"  "<<(*h).number<<"  "<<(*h).address<<"    "<<(*h).danwei<<"    "<<(*h).type<<"  "<<(*h).mail<<"  "<<(*h).QQ<<endl;
                
            }
            break;
        case 5://关闭
            cout<<"bye bye!!!"<<endl;
            exit(0);
            break;
        }
    }
    
    return 0;
    }
搜索更多相关主题的帖子: 管理系统 记事本 通讯录 
2016-01-21 18:54
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
fstream fs;
fs.open(".\\myfile.txt",ios::out);
fs.write("要保存的字符串数据",strlen("要保存的字符串数据"));  //保存字符串
fs.write("\n",1);      //用换行符分隔不同的数据
fs<<num;               //保存数字
fs.close();fs.clear();
2016-01-21 19:58
chen0470121
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-1-21
得分:0 
回复 2楼 yangfrancis
能不能帮我把这个语句加到我的代码里面,我比较好理解
2016-01-21 20:19
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:20 
struct information  
{
    string name;string number;string address;string danwei;string mail;string type;string QQ;
};
void Save(information &inf)
{
   fstream fs;
   fs.open(".\\myfile.txt",ios::out);
   fs.write(inf.name,strlen(inf.name));  //保存字符串
   fs.write("\n",1);      //用换行符分隔不同的数据
   fs.write(inf.number,strlen(inf.number));
   fs.write("\n",1);
   fs.write(inf.address,strlen(inf.address));
   fs.write("\n",1);
/**********************其他数据添加方式同上*************************/
   fs.close();fs.clear();
}
…………
information a;
...
/*数据录入过程*/
...
Save(a);
//此代码未测试,不知道string型能不能作为write成员函数的第一个参数,如果不行,自己再试试"<<"运算符,如果还不行,那只能将string型改成char数组用write函数操作。

以上描述应该够清楚了
2016-01-23 17:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-461251-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.193275 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved