Importare array da file txt

di il
22 risposte

Importare array da file txt

Ciao devo importare i numeri presenti nel mio file txt
130
103
67
135
55
88
54
131
135
43
133
115
105
110
67
122
71
43

in modo da averli in forma di array per poi poter fare somma ecc...
grazie

22 Risposte

  • Re: Importare array da file txt

    E quindi? Posta il codice che hai scritto? Problemi? Errori?
  • Re: Importare array da file txt

    Potresti predisporre due funzioni "dedicate": la prima per contare la quantita' dei dati numerici presenti nel file, la seconda per caricarli effettivamente.

    Una volta che hai la quantità dei dati da caricare puoi preparare l'array sia con l'allocazione dinamica, sia non, e passarne il puntatore alla seconda funzione.

    Per essere sicuri che le cose vadano a buon fine sarebbe bene mettere in campo anche tutti i controlli di errore opportuni.
  • Re: Importare array da file txt

    In realtà non si sa se ha cognizioni di allocazione dinamica della memoria o no. Probabilmente ha un massimo di elementi allocabili quindi non dovrebbe neanche contarli.

    Direi che è meglio attendere altre spiegazioni. Fornire un problema e "passare la palla" agli altri senza altre spiegazioni non è molto corretto e sembra una richiesta di "pappa pronta", ovvero "fatemi questa parte dell'esercizio che io non ho tempo di studiare".
  • Re: Importare array da file txt

    Chi vivrà... leggerà!

    P.S. Di solito la questione (se il problema è lo studio) non è avere il tempo, quanto piuttosto avere la voglia.
  • Re: Importare array da file txt

    In genere, quando non hanno la voglia, scrivono che non hanno tempo perché studiano altre materie ...
  • Re: Importare array da file txt

    Ho iniziato a scrivere il codice ma parto da zero, cioè non ho mai programmato in c++.
    questo è il codice che ho scritto ma i valori vengono visualizzati in un'unica stringa e quindi è impossibile fare delle operazioni matematiche(o almeno credo).

    int main()

    {

    std::ifstream iFile("test.txt");
    if (iFile.is_open())
    {
    std::string line;
    int row = 0;
    std::string delimiter = " ";
    while (getline(iFile, line))
    { row++;
    string x = line.substr(20, line.find(delimiter)) ;

    //il file presenta dei caratteri che non mi servono prima del 20esimo

    double HR = std::stod(x);
    cout << HR<<"\n";



    }iFile.close();}


    return 0;
    }
  • Re: Importare array da file txt

    Ma nel file i valori sono su una sola linea o su tante linee come hai mostrato?


    P.S. Usa i tag CODE quando posti del codice nel forum
  • Re: Importare array da file txt

    Sono su tante linee.
  • Re: Importare array da file txt

    Ci spieghi la questione dei 20 spazi che stanno prima, altrimenti non si capisce nulla. Nell'esempio che hai mostrato ci sono solo i numeri e non c'è altro prima nelle righe.

    Posta il vero file dati se vuoi una risposta concreta.
  • Re: Importare array da file txt

    1554485257902.000000 130.000000
    1554485258868.000000 103.000000
    1554485259867.000000 67.000000
    1554485260867.000000 135.000000
    1554485261867.000000 55.000000
    1554485262867.000000 88.000000
    1554485263867.000000 54.000000
    1554485264867.000000 131.000000
    1554485265867.000000 135.000000
    1554485266867.000000 43.000000
    1554485267867.000000 133.000000
    1554485268867.000000 115.000000
    1554485269867.000000 105.000000
    questo è il vero file.
    quello che dovrei fare è dividere ogni riga in due e poi considerare solo il secondo array trasformandolo in double o int.
  • Re: Importare array da file txt

    Quindi ti basta
    
    	if (iFile.is_open())
    	{
    		string line;
    		while (getline(iFile, line))
    		{
    			double HR = stod(line.substr(20));
    			cout << HR << "\n";
    		}
    		
    		iFile.close();
    	}
    
  • Re: Importare array da file txt

    Si e questo è quello che veniva anche a me. ora però per fare la somma dei primi 10 numeri ad esempio. come faccio?
    io avevo pensato di avere un array ordinato che mi identificasse ogni HR con un numero (1,2,3...). per poi selezionare solo i numeri che mi servivano e quindi i corrispondenti HR.
    si potrebbe fare con una struct?
  • Re: Importare array da file txt

    Beh, non veniva così anche a te, il codice che hai postato faceva altro.
    Per sommare i primi 10 basta che usi un contatore. Una variabile che parte da uno e aumenta e finché è minore o uguale a 10, fai la somma dei numeri HR in un'altra variabile totale. Niente array, niente strutture, semplici variabili.

    int tot=0;
    int count=1;
  • Re: Importare array da file txt

    Una cosa del genere intendevi??
    double tot = 0;
    for (int i = 0; i < 10; i++)
    tot = tot + HR;
    cout << tot;

    (scusa ma non so usare i tag code )
Devi accedere o registrarti per scrivere nel forum
22 risposte