Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

θελω να διαβασω ενα αρχειο και να διαγραψω μια γραμμη αλλα παραλληλα να μην αφησω κενα (δλδ να κανω ολίσθηση προς τα επανω ολα τα στοιχεια) μεχρι τωρα εχω κανει αυτο αλλα δεν μου δουλευει (βασικα κανει απλα copy ολο το αρχειο)

 

>void delete_line(int line) //το line ειναι ενας ακεραιος που προσδιοριζει την γραμμη προς διαγραφη του αρχικου αρχειου
{
	int current_line=0;
[left]    ifstream in("infile.txt");[/left]

	ofstream out("outfile.txt");
 int data; 
  

 cout<<line;

	while(in.eof()==0)
	{
  	in>>data;
     if(current_line != line)
     {out <<data<<<"\n";}
  	current_line++;

	}

  in.close();
   out.close();
rename(" outfile.txt","infile.txt "); }

Δημοσ.

Αυτό που λέει ο πάπι!

 

Χρησιμοποίησε μια συνάρτηση όπως η getline() ή η fgets() που διαβάζουν ολόκληρες γραμμές. Ξεκίνα από την αρχή του αρχείου σου και γράφε σε νέο αρχείο όλες τις γραμμές που δεν είναι η προς διαγραφή. Θα μετράς δηλαδή πόσα getline() κάνεις καθώς γράφεις στο άλλο αρχείο, και μόλις φτάσεις στην προς διαγραφή γραμμή θα την κάνεις skip.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...