Leggere primo carattere di ogni riga file txt

di il
3 risposte

Leggere primo carattere di ogni riga file txt

Ciao a tutti,
il mio problema sarà per voi una banalità. Ho un file txt in input organizzato in questo modo:

9 10.1.1.9 10.1.1.1 3,500000 00:00:00:00:09 00:00:00:00:08 7

il mio obiettivo è SE la riga inizia con un carattere pari a "9" allora devo estrarre il numero in grassetto, in questo caso 3,500000. Scrivere il tutto su altro nuovo file.

Un'altra mia curiosità è su come fare a inserire, ogni volta che incontro una riga che abbia il numero indicato in grassetto che ha 3 zeri alla fine quindi XX,XXX000, una nuova linea vuota sopra questa riga. So come si fa ad inserire sotto ma sopra no..

#include<iostream>
#include<fstream>
#include <sstream>
using namespace std;

int main()
{     

string buffer;
ofstream out;
ifstream in1;
out.open("out-ciclo.txt");
in1.open("in-ciclo.txt");

int countline(1);

while(getline(in1,buffer))
{           
         
...............        
...............
...............            
}

in1.close();
countline=0;
buffer.clear();

}
Per ora ho scritto questo codice e mi manca il cuore.
Grazie in anticipo dell'aiuto!

3 Risposte

  • Re: Leggere primo carattere di ogni riga file txt

    Il mio problema è come indicare di prendere solo quelle righe che iniziano con il "9", cioè il primo carattere uguale a 9.
    C'è un comando che manipola la stringa buffer in questo modo?
  • Re: Leggere primo carattere di ogni riga file txt

    
    if(buffer[0] == '9')
    .....
    
    il resto sai che si può fare con una mappa. In questo momento non ho tempo per mettere su un programma che faccia ciò che chiedi quindi o aspetti oppure ti metti a leggere come usare la std::map e std::string x bene specialmente la funzione find di std::string.
  • Re: Leggere primo carattere di ogni riga file txt

    Sì grazie, ho risolto. Non ti preoccupare io cerco di fare con le mie forze, quando hai tempo e se vuoi dai un occhio a quello che ti ho scritto.
    Grazie lo stesso
Devi accedere o registrarti per scrivere nel forum
3 risposte