PDA

View Full Version : lettura numero elementi file in c


mistermars
28-03-2005, 18:16
salve.
dovrei creare una funzione che mi fornisca il numero di righe o di colonne che formano una matrice quadrata come ad esempio:

0 18 18 9 27
18 0 27 0 9
18 27 0 27 0
9 0 27 0 18
27 9 0 18 0


in questo caso il valore è 5.

Sto utilizzando la libreria fstream.h

come posso fare?

tglman
28-03-2005, 22:07
Be e piuttosto semplice.....
per il numero di colonne leggi la prima riga e conti quante volte è presente lo spazio bianco, e a seconda di come e costruitoil file può corrispondere a:
n_spazi-1.
n_spazi.
n_spazi+1.

e per le righe conti quante volte viene ripetuto il carattere "\n" o "\r"(di soluto in un invio sono presenti entrambi)

se cerchi una funzione che te lo fa già non credo che esista, ma comunque è molto facile crearsela....
Ciao.

mistermars
29-03-2005, 09:09
Originariamente inviato da tglman
Be e piuttosto semplice.....
per il numero di colonne leggi la prima riga e conti quante volte è presente lo spazio bianco, e a seconda di come e costruitoil file può corrispondere a:
n_spazi-1.
n_spazi.
n_spazi+1.

e per le righe conti quante volte viene ripetuto il carattere "\n" o "\r"(di soluto in un invio sono presenti entrambi)

se cerchi una funzione che te lo fa già non credo che esista, ma comunque è molto facile crearsela....
Ciao.


si anche io avevo pensato a questo, ma non conosco le istruzioni da usare

tglman
29-03-2005, 09:27
be non ci sono funzioni diciamo gia belle che fatte, cè una readline... o una cosa del genere per leggere una riga, ma secondo me puoi indirizzarti solo su un paio di metodi:
1)leggi tutto il file, come stringa , lo dividi per righe e poi conti il numero degli spazi che sono presenti.. o comunque una cosa del genere
2) leggi un carattere per volta e ti comporti a seconda del carattere che hai...

Ma comunque ti rimane il fatto che te lo devi costruire da solo...
Se vuoi ho una funzioncina perfetta per il primo caso che funziona cosi:

char **vett=split("stringa con spazi bianchi "," ");

risultato:

vett={"stringa","con","spazi","bianchi",""};

Ciao..