| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 420 人关注过本帖
标题:信息管理
只看楼主 加入收藏
王文倩
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
信息管理
#include<iostream>
#include<fstream>
using namespace std;
struct staff
{
    int num;
    char name[20];
    int age;
    double pay;
};
int main()
{
    staff staff[7]={2101,"li",34,1203,2104,"wang",23,674.5,2108,"fun",54,778,3006,"xue",45,476.5,5101,"ling",39,656.6
    },staff1;
    fstream iofile("staff.dat",ios::in|ios::out|ios::binary);
    if(!iofile)
    {
        cerr<<"open staff.dat error!"<<endl;
        exit(1);
    }
    int i,m,num;
    cout<<"Five staff:"<<endl;
    for(i=0;i<5;i++)
    {
        cout<<staff[i].num<<staff[i].name<<staff[i].age<<staff[i].pay<<endl;
        iofile.write((char *)&staff[i],sizeof(staff[i]));
    }
    cout<<"Please input data you want insert:"<<endl;
    iofile.seekp(0,ios::end);
    for(i=0;i<2;i++)
    {
        cin>>staff1.num>>staff1.name>>staff1.age>>staff1.pay;
        iofile.write((char *)&staff1,sizeof(staff1));
    }
    cout<<"Senven staff:"<<endl;
    iofile.seekg(0,ios::beg);
    for(i=0;i<7;i++)
    {
        iofile.read((char *)&staff[i],sizeof(staff[i]));
        cout<<staff[i].num<<staff[i].name<<staff[i].age<<staff[i].pay<<endl;
    }
    bool find;
    cout<<"enter number you want search ,enter 0 to stop"<<endl;

    cin>>num;
    while(num)
    {
        find=false;
        iofile.seekg(0,ios::beg);
        for(i=0;i<7;i++)
        {
            iofile.read((char *)&staff[i],sizeof(staff[i]));
            if(num==staff[i].num)
            {
                m=iofile.tellg();
                cout<<num<<"is No."<<m/sizeof(staff1)<<endl;
                cout<<staff[i].num<<""<<staff[i].name<<""<<staff[i].age<<""<<staff[i].pay<<endl;
                find=true;
                break;
            }
        }
        if(!find)
        cout<<"cant't find"<<num<<endl;
        cout<<"enter number you want search,enter 0 to stop.";
        cin>>num;
    }
    iofile.close();
    return 0;
}
为什么老是出现
open staff.dat error!
Press any key to continue一直解决不了,求帮忙
搜索更多相关主题的帖子: include 信息 double 
2013-06-13 09:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:4 
无关的太多了,你这样问:
fstream iofile("staff.dat",ios::in|ios::out|ios::binary);
if(!iofile)
{
   cerr<<"open staff.dat error!"<<endl;
}
为什么运行时老是出现 open staff.dat error!?

更简洁的,还可以这样问:
fstream iofile("staff.dat",ios::in|ios::out|ios::binary);
为什么运行时打开文件失败?
2013-06-13 09:51
wuchunbing
Rank: 2
等 级:论坛游民
帖 子:27
专家分:24
注 册:2012-10-9
收藏
得分:0 
我想问下 你这个是C++程序吗?
2013-06-13 20:19
wuchunbing
Rank: 2
等 级:论坛游民
帖 子:27
专家分:24
注 册:2012-10-9
收藏
得分:4 
我运行了下你的程序,基本问题没有的 当然你要用exit函数 最好包含stdlib.h头文件.很明显这个程序不是你自己写的 ,因为这个程序中要求的staff.dat文件根本不存在,程序也没有表明不存在既创建。你先在你程序的当前目录下创建一个staff.dat文件 然后在运行。就OK了
2013-06-13 20:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
以下是引用wuchunbing在2013-6-13 20:19:52的发言:

我想问下 你这个是C++程序吗?

用了C++语法和一些函数、库,就算是C++程序,很多人都这样认为的。

授人以渔,不授人以鱼。
2013-06-13 20:37
快速回复:信息管理
数据加载中...
 
   



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

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