我无法从文本文件C ++中删除单行

时间:2017-05-24 05:33:40

标签: c++ string file text structure

您好我正在开展一个项目,我有学生,他们的姓名姓氏和所有内容,我想通过名字选择学生,并删除关于学生的全部信息,以及案例3:我的代码:`

case 3:{


           int fNomer;
           string ime;
           string prezime;
           string familiq;
           string fakyltet;
           string specialnost;
           int grypa;
           int kyrs;
           string stud;
           cout << "Stydenta koito iskate da iztriete";
           cin >> stud;
           ifstream file;
           ofstream outfile;
           file.open("Student.txt");
           outfile.open("newM.txt");
           while (getline(file, line))
           {
               if (line == deleteMovie){}
               else { outfile << line << endl; }
           }
           outfile.close();
           file.close();
           outfile.close();
           file.close();
           remove("Students.txt");
           rename("newM.txt", "Students.txt");
           break;
}

1 个答案:

答案 0 :(得分:0)

问题在于:

 while (getline(file, line))
 {
    if (line == deleteMovie){}
    else { outfile << line << endl; }
 }

首先我们正确格式化这段代码:

 while (getline(file, line))
 {
    if (line == deleteMovie)
    {
    }
    else
    {
      outfile << line << endl;
    }
 }

现在我们可以看到(我们之前已经可以看到)你正在检查错误的变量deleteMovie而不是stud

    if (line == deleteMovie)

应该是

    if (line == stud)

您仍然需要添加错误检查,例如处理无法打开文件的情况。