|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <iostream>
- #include <string>
- #include <fstream>
- struct Message
- {
- std::string name;
- std::string idcard;
- char sex; //F代表女性 M代表男性
- };
- void Message_Init(struct Message *message)
- {
- //fstream fp("text.txt",std::ios::in|syd::ios::out);
- std::ofstream in("test.txt");
- if(!in)
- {
- std::cerr<<"文件打开失败!"<<std::endl;
- return;
- }
- message->name="小甲鱼";
- message->idcard="小甲鱼——000000";
- message->sex='M';
- in<<message->name<<'\0';
- in<<message->idcard<<'\0';
- in<<message->sex;
- in<<std::endl;
- in.close();
- }
- int hint_cin()
- {
- int x;
- std::cout<<"请选择需要进行的操作"<<std::endl;
- std::cout<<"1.打印数据到屏幕"<<std::endl;
- std::cout<<"2.录入数据"<<std::endl;
- std::cout<<"3.退出程序"<<std::endl;
- std::cin>>x;
- while(!std::cin.good())
- {
- std::cout<<"输入错误,请重新时输入";
- std::cin.clear();
- std::cin.ignore(100,'\n');
- std::cin>>x;
- }
- return x;
- }
- void pint()
- {
- struct Message temp;
- std::ifstream out("test.txt");
- out>>temp.name;
- out>>temp.idcard;
- out>>temp.sex;
- std::cout<<"正在输出记录数据"<<std::endl;
- std::cout<<" 姓名 身份证 性别"<<std::endl;
- std::cout<<temp.name<<" "<<temp.idcard<<" "<<temp.sex<<std::endl;
- }
- void enter()
- {
- struct Message temp;
- std::ofstream in("test.txt");
- if(!in)
- {
- std::cerr<<"文件打开失败!"<<std::endl;
- return;
- }
- // in.seekg(std::ios::end);//使得文件指针指向文件尾 ios::beg则是文件头
- std::cout<<"请输入姓名:";
- std::cin>>temp.name;
- std::cout<<"请输入身份证:";
- std::cin>>temp.idcard;
- std::cout<<"请输入性别:";
- std::cin>>temp.sex;
- in<<temp.name<<'\0'<<temp.idcard<<'0'<<temp.sex<<std::endl;
- }
- int main()
- {
- int flag=0;
- struct Message a;
- Message_Init(&a);
- while(1)
- {
- flag=hint_cin();
- switch(flag)
- {
- case 1:
- pint();break; //打印数据
- case 2:
- enter();break; //输出数据
- case 3:
- return 0; //退出程序
- }
- std::cout<<"\n\n";
- }
- return 0;
- }
复制代码
此程序是一个信息录入程序 但是每次重新录入信息时会将原来的信息覆盖,因为操作文件的时候文件指针不能指向文件尾 in.seekg(std::ios::end);这行代码这样写会报错
还有就是从文件夹内读出数据怎么分别存放到结构体变量当中去呢?我现在读出文件夹内的数据他会全部存放到结构体变量的第一个字符串中 无法分别存放,请大家赐教,谢谢
std::ofstream in("test.txt",std::ios::app); 这样就会追加到文件尾!
|
|