Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - lavorare con i file
Forum - C/C++ - lavorare con i file

Avatar
giga91 (Normal User)
Newbie


Messaggi: 12
Iscritto: 04/05/2010

Segnala al moderatore
Postato alle 16:22
Mercoledì, 28/09/2011
Salve a tutti, sono di nuovo qui a chiedere il vostro aiuto. Avrei bisogno di creare una funzione che passato il puntatore di tipo file mi prenda solo due parole e le salvi in due variabili char[20].
Ho provato a scrivere un programmino ma non funge

Codice sorgente - presumibilmente C++

  1. void NEW (FILE *file)
  2. {
  3.         char sam[600],sam1[600],c;
  4.         int i=0;
  5.  
  6.         while(c != '\n')                        //lo utilizzo per scendere di una riga (funziona)
  7.         {      
  8.               c = getc(file);
  9.         }
  10.        
  11.         while(c != '<')                        //lo utilizzo per salvare la mia parola nel mio vettore
  12.         {      
  13.               c = getc(file);
  14.               sam[i]=c;
  15.               i++;
  16.         }
  17.  
  18.         while(c != '\n')                        //lo utilizzo per scendere di una riga (ma non funziona)
  19.         {      
  20.               c = getc(file);
  21.         }
  22.         i=0;
  23.         while(c != '<')                        //lo utilizzo per salvare la mia parola nel mio vettore
  24.         {      
  25.               c = getc(file);
  26.               sam1[i]=c;
  27.               i++;
  28.         }
  29.  
  30. }


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:31
Mercoledì, 28/09/2011
In che senso "due parole"?

Le prime due parole del file? Sono separate da spazi? Sono su due righe?

Potresti usare la fgets ma dipende ...

E poi, come le passi al programma chiamante ?

Ultima modifica effettuata da nessuno il 28/09/2011 alle 16:32


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
giga91 (Normal User)
Newbie


Messaggi: 12
Iscritto: 04/05/2010

Segnala al moderatore
Postato alle 16:35
Mercoledì, 28/09/2011
si in effetti mi sono spiegato male.
un esempio del mio file

Codice sorgente - presumibilmente C/C++

  1. NAME : pippo</a></a><br />
  2. COGNOMEL : gallo<br />
  3. EMAIL : gallo@live.it <br />
  4. CHIAVE : 123<br />



Io devo prendere gallo e 123 e salvarli in due variabili di tipo char

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:46
Mercoledì, 28/09/2011
Allora la cosa è più complessa.

Se le righe sono separate (da newline) allora devi leggere con un ciclo e la fgets fino a quando non trovi la parte iniziale delle righe che ti servono

COGNOME

CHIAVE

a quel punto, mi sembra che i dati siano posti a partire da specifiche posizioni e quindi puoi lavorare con gli indici delle stringhe lette.

I dati non possono andare in variabili char dato che sono stringhe, semmai in array di char. Però devi fare in modo che non siano locali. Devi allocare la memoria e restituire i puntatori oppure allocare le stringhe dall'esterno e passarle alla funzione.



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
giga91 (Normal User)
Newbie


Messaggi: 12
Iscritto: 04/05/2010

Segnala al moderatore
Postato alle 16:55
Mercoledì, 28/09/2011
Non esisti esempi da cui prendere spunto?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:59
Mercoledì, 28/09/2011
Esempi specifici non so ... dovrei cercare su internet ma lo puoi fare anche tu.

Ti posso consigliare di documentarti sulle varie funzioni necessarie (attraverso le quali puoi ottenere esempi)

fgets
http://www.cplusplus.com/reference/clibrary/cstdio/fgets/

strncmp
http://www.cplusplus.com/reference/clibrary/cstring/strncmp/


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Umberto (Member)
Pro


Messaggi: 156
Iscritto: 27/09/2011

Segnala al moderatore
Postato alle 17:01
Domenica, 09/10/2011
Puoi fare anche un analisi carattere con fget.

PM Quote