Salve ragazzi
facendo un po di ricerche nel forum e su internet non sono riuscito a trovare una funzione in c++ che mi elimini una riga da un file senza riscriverlo completamente trascurando la linea che non vogliamo cancellare.
Cioè non esiste una funzione tipo quella di php
Codice PHP:
$query mysql_query("DELETE FROM tabella WHERE nome = gianni"); 
Potete confermare questa mia ricerca?

Ora vorrei sapere come posso farlo riscrivendo il file e utilizzando i vector.
vi posto il codice che sono riuscito a scrivere ma non funziona bene poichè cancella tutto il file o meglio non lo riscrive.
Questa è la mia classe:
Codice PHP:
#include <iostream>
#include <string>
using namespace std;
class 
squadre {
//definisco gli attributi relativi alla classe
    
string nome;
    
int giocate;
    
int vinte;
    
int perse;
    
int pari;
    
int gf;
    
int gs;
    
int penalita;
public:
    
//definizione dei vari metodi della classe
    //Costruttore di default
    
squadre() {
    
nome "";
    
giocate 0;
    
vinte 0;
    
perse 0;
    
pari 0;
    
gf 0;
    
gs 0;
    
penalita 0;
    }
    
//Costruttore
    
squadre (string nameint playedint wonint lostint drawnint scoredint concededint penality) {
    
nome name;
    
giocate played;
    
vinte won;
    
perse lost;
    
pari drawn;
    
gf scored;
    
gs conceded;
    
penalita penality;
    }
    
//Distruttore
    
~squadre() {
    
cout << "Libero la memoria occupata...";
    }
    
//Prototipi dei vari metodi sulla classe (definizione trattata successivamente)
    
void elimina();
}; 
E questa è la definizione del metodo elimina:
Codice PHP:
void squadre::elimina(){
//Puntatore al file
FILE *filepunt;
if((
filepunt fopen("squadre.dat","rb"))==NULL)
    { 
    
//Il file non esiste non posso eliminare nessuna squadra
    //Restituisco un messaggio di errore
    
cout << "\n  Il file 'squadre.dat' e' inesistente.\nNon e' stata inserita nessuna squadra!";
} else {
//il file è stato aperto precedentemente. Chiedo all'utente il nome della squadra da eliminare
cout << "Inserisci il nome della squadra da eliminare\n";
//creo una variabile locale per il nome e una per definire se esiste una squadra con quel nome
int trovato=0;
string nome_temp;
cin >> nome_temp;
//verifico se effettivamente il nome inserito esiste 
    
while(fread (this,sizeof(*this),1,filepunt) && !feof(filepunt)) 
    {                 
        if(
nome == nome_temp
        { 
            
cout << "Trovata 1 squadra con il nome inserito:  ";
                
//Stampo i titoli delle colonne
                
cout << "Nome";
                
cout << "\tGiocate";
                
cout << "\tVinte";
                
cout << "\tPerse";
                
cout << "\tPari";
                
cout << "\tFatti";
                
cout << "\tSubiti";
                
cout << "\tPenalita'";
                
cout << "\n" << endl;
                
cout << nome;
                
cout << "\t" << giocate;
                
cout << "\t" << vinte;
                
cout << "\t" << perse;
                
cout << "\t" << pari;
                
cout << "\t" << gf;
                
cout << "\t" << gs;
                
cout << "\t" << penalita;
                
cout << endl << endl;
            
trovato 1;
            break;       
        }
    }

    if(
trovato==1) {    
        
vector<squadrevect;
        
//inserisco nel vector tutti gli elementi tranne quello da eliminare
    
while(fread (this,sizeof(*this),1,filepunt) && !feof(filepunt)) 
    {                 
        if(
nome != nome_temp
        { 
vect.push_back(*this);}
    }
    
//chiudo il file e lo apro in modalita scrittura cancellando ogni dato sul file
    
fclose(filepunt);
    
filepunt fopen("squadre.dat","wb");
    
//inserisco gli elementi del vector all'interno del file
    
vector<squadre>::iterator iter;
    for(
iter vect.begin(); iter != vect.end(); iter++){
        
fwrite(thissizeof(*this), 1filepunt);
    }
    
    } else {
    
cout << "Non esiste nessuna squadra con questo nome!";
    }
    
fclose(filepunt);    
}

Che errore ho commesso?
Grazie