我想从文本文件中删除一个特定的值或行

时间:2018-01-15 00:05:40

标签: c++ fstream ifstream

  1. 此代码从学生的文本文件打印所有课程,如果他想取消注册某个课程和他将选择它的课程将从文件中删除,我看到很多这样的问题,但我不能用这种方式因为我不想将数据存储在另一个文件中,除了一行(将被删除)并重命名,因为数据对每个学生都有参考,谢谢你提前 ...

        ifstream CourseAssign("C:\\StudentsCourses.txt") ;
              int z=0 , y =1 ;
    
                 if(!CourseAssign.is_open()) {
                      cout << "Error opening" ;
                         }
    
            while( CourseAssign >> Student_Details[*n].CourseName_of_Student[z]){
                cout << y << Student_Details[*n].CourseName_of_Student[z] ;
                    z++;
                    y++;
                }
    
          int Num2 ;
    
  2. 此处用户(学生)应输入一个号码,课程将被删除 但我只需要合适的代码就可以了,我再也不能用普通的方法

          cout << "Which Course do you wanna unregister it" ;
               cin >> Num2 ;
               z = Num2; 
               z -= 1 ;
    
  3.   

    我的档案就像那样

               1:CS
    
               2:Ai 
    
               3:Data Structure
    

1 个答案:

答案 0 :(得分:1)

至少要读取文件直到要删除的数据,然后阅读后面的所有内容。除非您使用具有特殊布局的二进制文件格式,否则简单地重写整个文件比尝试就地更改文件更容易。