Domanda

.

Quantità del tipo Numero del numero

15 Controllo 52.42

23 Risparmio 51.51

11 Controllo 12.21

è il mio file delicato della scheda

Vorrei essere in grado di cercare righe dal numero dell'account.Dì se metto il 23 anni, voglio ottenere quella riga specifica.Come farebbe l'ID?

Ancora più avanzata, se volevo modificare un valore specifico, dire importo 51.51 in conto 23. Come faccio a prendere quel valore e sostituirlo con un nuovo valore?

Finora sto solo leggendo in fila per riga

.

linea stringa; IFSleam è ("ACCOUNT.TXT");

 if (is.is_open())
 {
while (std::getline(is, line))  // read one line at a time
{
    string value;
    string parseline;
    std::istringstream iss(line);

    getline(line, parseline);
    cout << parseline << endl;  // do something with the value
    while (iss >> value)    // read one value at at time from the line
    {
        //cout << line << "   ";    // do something with the value
    }
}
is.close();
 }
 else
     cout << "File cant be opened" << endl;

return 0;
.

È stato utile?

Soluzione

Dato che ogni linea è di lunghezza variabile, non c'è modo di indicizzare la riga particolare senza prima analizzare l'intero file.

Ma sospetto che il tuo programma vorrà manipolare righe e colonne casuali.Quindi inizierei ansando l'intero file.Metti ogni riga nella propria struttura di dati in un array, quindi indicizzare quella riga nell'array.

È possibile utilizzare "Strtok" per dividere l'input in righe, quindi di nuovo Strtok per dividere ogni riga in campi.

Altri suggerimenti

Se dovessi farlo, avrei scritto per la prima volta alcune funzioni che analizzano l'intero file e memorizzano i dati in una struttura dati appropriata (come un array o std :: mappa).Quindi utilizzerei la struttura dei dati per le operazioni richieste (come la ricerca o la modifica).Infine, scriverò la struttura dei dati in un file se ci sono modifiche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top