13919713675 发表于 2020-1-9 22:33:31

关于c++的文件读取问题

在进行详细输入之后,不关闭程序,进行查询功能是没有问题的。但是关闭查询之后,再打开,查询不了,这时候txt文件中上次录入的信息依然存在。而且,在添加新的信息之后,会将之前的所有信息都覆盖。
以下分别是读取数据的函数和添加信息的函数
/从磁盘读取数据
void Read(string num[],string name[],string sex[],string age[],string special[],string add[])
{
      ifstream infile("student.txt");
      if(!infile)
      {
                cerr<<" open error"<<endl;
                exit(1);
      }
      for(int i=0; i<MAX; i++)                //只读取存放在数组中 但不对其进行相关操作
      {
                infile>>num>>name>>sex>>age>>special>>add;
      }
      infile.close();
}

//添加学生信息
void Student::Add()
{
      string num, name, sex, age, special, add;
      //以追加的方式录入信息,直接将信息追加到以前文件的末尾
      ofstream outfile("student.txt");
      if(!outfile)
      {
                cerr<<" open error"<<endl;
                exit(1);
      }
      count++;                //添加一个学生信息,当然 count 要+1
      cout<<"请依次输入要添加的学生学号,姓名,性别,年龄,专业班级,住址:"<<endl;
      cin>>num>>name>>sex>>age>>special>>add;

      m_num = num;
      outfile<<m_num<<"\t";

      m_name = name;
      outfile<<m_name<<"\t";

      m_sex = sex;
      outfile<<m_sex<<"\t";

      m_age = age;
      outfile<<m_age<<"\t";

      m_special = special;
      outfile<<m_special<<"\t";

      m_add = add;
      outfile<<m_add<<endl;

      outfile.close();
      cout<<"已添加成功!"<<endl;
}


13919713675 发表于 2020-1-9 23:21:02

我自己顶自己

不会停下 发表于 2020-1-10 08:38:03

outfile.open("C:\\myfile.txt", ios::app);

不会停下 发表于 2020-1-10 08:39:18


ofstream outfile("student.txt"); // 错误!!!

写文件应该用追加的方式

ofstream outfile("student.txt", ios::app);

13919713675 发表于 2020-1-19 21:13:42

不会停下 发表于 2020-1-10 08:39
ofstream outfile("student.txt"); // 错误!!!

写文件应该用追加的方式


我试过了,也是有问题的
页: [1]
查看完整版本: 关于c++的文件读取问题