Sam ciągle się uczę także też miałem z tym trochę zabawy ale wyszło coś takiego i z tego co testowałem działa tak jak chciałeś, w razie błędów na pewno koledzy z forum mnie poprawią.
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
void wypisz_plik(string sciezka)
{
fstream plik;
plik.open("plik.txt", ios::in | ios::out);
int index = 1;
string tekst;
if (plik.good())
{
while (getline(plik, tekst))
{
cout << index++ << ". " << tekst << endl;
}
}
plik.close();
}
void usun_linie(string sciezka, int linia)
{
fstream plik;
plik.open("plik.txt", ios::in | ios::out | ios::app );
vector <string> temp;
string tekst;
int index = 1;
if (plik.good())
{
while (getline(plik, tekst))
{
if (index != linia)
{
temp.push_back(tekst);
}
index++;
}
}
plik.close();
plik.open("plik.txt", ios::in | ios::out | ios::trunc);
for (int i = 0; i < temp.size(); i++)
{
plik << temp.at(i) << endl;
}
plik.close();
}
int main()
{
wypisz_plik("plik.txt");
cout << "\nWybierz linie ktora chcesz usunac : ";
int wybor;
cin >> wybor;
cout << endl;
usun_linie("plik.txt",wybor);
wypisz_plik("plik.txt");
return 0;
}
Chodzi o usuwanie danej linii z tekstu.