Oppure

Loading
18/03/10 13:22
evox
Raga ho un problema...devo realizzare un programma in C++, che prende in input un file .txt (di grosse dimensioni circa 500.000 linee), però questo file .txt ha una particolarità è come se fosse scritto su 3 colonne vi prendo un esempio:
180mila    180mila    PRO-NUM
18mila    18mila    DET-NUM-CARD
18mila    18mila    PRO-NUM
200mila    200mila    DET-NUM-CARD
200mila    200mila    PRO-NUM
20mila    20mila    DET-NUM-CARD

ora da questo file devo creare un altro file .txt in cui sia presente soltanto la seconda colonna.
Avete qualche idea di come possa realizzarlo?
Grazie per l'aiuto.
aaa
18/03/10 13:29
evox
ora vi faccio vedere un pò di codice:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int leggi_file ();

int main() {
leggi_file();
}

//FUNZIONE PER LA LETTURA DA FILE CON COUT PER VISUALIZZARE IL FILE IN ESECUZIONE
int leggi_file() 
{
fstream in("morph.txt");
if(in.is_open())
{
cout<<"";
}
else
{
cerr<<"error opening file";
return(-1);
}
string what="";
while(getline(in,what))
{
cout<<what<<endl;
}
}

aaa
18/03/10 13:30
evox
il problema ce l'ho soprattutto nel troncare le righe del mio file .txt
aaa
18/03/10 18:10
Poggi Marco
Il programma di lettura del file è funzionanta, a quanto pare il problema sta nel manipolare le stringhe.

In tal caso ti consiglio di crearti una funzione che riconosca i caratteri dagli spazi, quindi scarti la "prima parola" e salvi la seconda per ogni riga.
aaa
19/03/10 22:00
giuseppe93
puoi fare dei cicli per determinare se devi cancellare il pezzo di stringa che non ti serve.
per esempio puoi fare un cilclo while del tipo: mentre il primo carattere della stringa non è spazio allora sovvrascrivi ogni carattere della stringa con quello della sua dx. così ti togli la prima colonna, poi fai lo stesso per togliere gi spazi tra la prima e seconda colonna. puoi con un altro cilclo trovi la posizione del primo spazio e quindi trochi tutte le lettere che sono dopo quella pos.
aaa