2017-05-24 13 views
-1

こんにちは私は学生の氏名の姓とすべてを持っているプロジェクトに取り組んでいます。私は学生を名前で選び、ケース3には:私のコード: `私はテキストファイルから1行を削除できません。C++

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; 
} 
+0

コードを正しくフォーマットする必要があります。あなたのC++教科書のように。 –

+0

ようこそStackOverflowへ。 [ツアー]を取ってください。 よくある質問stackoverflow.com/help/how-to-ask、 [mcve]を作成してください。 MCVEには、さまざまなサンプル入力(すべての側面を示す)と望ましい出力が含まれている必要があります。 デバッグコードのヘルプをお探しの場合は、https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ を参照してください。MCVEは、例えば、deleteMovieの情報を提供します。これはおそらく障害メカニズムの一部です。 – Yunnosch

答えて

0

は、問題はここにある:

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

まず、我々は正確にコードのこの部分をフォーマット:

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

そして今、私たちはあなたの代わりにstudの間違った変数deleteMovieに対してチェックしていること(すでに前にいる場合だけでなく、我々が見ることができる)見ることができます:

if (line == deleteMovie) 

あなたはまだ追加する必要があり

if (line == stud) 

する必要があります例えば、ファイルを開くことができない場合に対処するためのエラーチェック。

関連する問題