Se non posti il codice incriminato difficile darti risposta..
Se non posti il codice incriminato difficile darti risposta..
No ok, quel problema è risolto... non capisco perchè, ma è risolto (fino a ieri non c'era verso di fargli copiare tutte le colonne)![]()
Comunque... ti spiego il mio problema: ho un file di 152 righe e 12 colonne, dovrei trovare un algoritmo efficiente, per leggere e conservare tutti i 1824 dati (double).
Devo creare un grafico con Root (interprete c++), tramite un TGraph, che prende come argomenti il numero di punti (1824 in questo caso), e due vettori, contenenti le coordinate (su x--->intervalli di ampiezza scelta arbitrariamente, su y i valori letti da file)...
Hai qualche dritta?
Non devi accodarti ad un thread precedente.
Adesso, non si puo' rispondere a te e a chi ha aperto originariamente il thread ...
Ma che ci vuole ad aprire un nuovo thread??
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ah scusate, visto che si parlava di lettura da File ho pensato di scrivere qui... di solito nei forum c'è il problema dell'apertura di troppi topic simili.
Comunque se non si può cancellate pure i miei messaggi, aprirò un topic a parte
Chiedo scusa all'autore del thread![]()
allora raga, nel mio FILE 'test.txt, ho inserito ciò':
Eseguo questo programma, che legge il file e stampa su video tutto il file completo.codice:Ciao A Tutti!.
Io ho aggiunto le ultime due righe (cout<<buffer[2] e [11]).
sapete dirmi perche' quando esegue (cout<<buffer[2]) mi stampa spazio vuoto, ecodice:#include <iostream> #include <fstream> using namespace std; int main () { filebuf *pbuf; ifstream filestr; long size; char * buffer; filestr.open ("test.txt", ios::binary | ios::in); pbuf=filestr.rdbuf(); size=pbuf->pubseekoff (0,ios::end,ios::in); pbuf->pubseekpos (0,ios::in); buffer=new char[size]; pbuf->sgetn (buffer,size); filestr.close(); cout.write (buffer,size); free(buffer); cout<<"********"<<endl; cout<<buffer[2]; //stampa spazio vuoto cout<<buffer[11]; // stampa la 'T' maiuscola di 'TUTTI' getchar(); }
quando esegue ( cout<<buffer[11]) mi stampa la 'T' maiuscola di 'TUTTI'
?????
Intanto non devi inserire quelle righe DOPO la free perche' in quel punto buffer è stato deallocato e l'accesso a tale area potrebbe causare un errore.
Le righe vanno quindi PRIMA della free.
In ogni caso, in quel modo visualizzi il terzo carattere (a minuscola) e il dodicesimo carattere (T maiuscola) del file considerato che lo leggi tutto nel buffer.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Vorrei far notare all'OP che allocare con new[] e deallocare con free() porta jella.
![]()
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Ciao raga, ma se il mio FILE.txt sarebbe:
Come posso salvare in una variabile il numero "2" [ 2) Luca Smith] ???codice:1) Marco Russo 2) Luca Smith
Allora dovre semplicemente leggere linea dopo linea, non tutto il file.Originariamente inviato da Salvatore_91
... se il mio FILE.txt fosse:
E quando leggi la seconda linea, trasformi la stringa in un valore numerico.
No MP tecnici (non rispondo nemmeno!), usa il forum.
come faccio a leggere una sola linea (linea dopo linea, come hai detto tu)??