|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 139
|
stringhe da file
Allora ecco il mio problema, io devo recuperare da un file che ho aperto con fopen una serie di nomi (uno per riga) e memorizzarli in modo da poterli confrontare con nomi di un'altro file, in pratica ho un file di questo tipo
Fiat Alfa Lancia un altro con due numeri : il primo indica la ditta ( il numero 1 la ditta memorizzata nella prima riga e così via) gli altri sono le quotazioni di borsa... 1 12 2 15 1 13 e un terzo che mi definisce dei comandi da eseguire per esempio Max fiat che significa trovare il valore massimo della fiat e così via... non ho la benchè minima idea di come procedere qualche idea? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
premettendo che l'ideale per il tuo problema sarebbe utilizzare un database...
il comando di cui hai bisogno è: fgets -- Prende una riga da un puntatore a file per prendere ogni singola riga e magari anche: strtok -- Suddivide una stringa in token nel caso dei numeri per dividerli in base al carattere " " ciao |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 139
|
Capisco ma volevo sapere il prototipo della funzione fgets nel senso io ho aperto il file aziente.txt
if ( (fp = fopen ("aziende.txt", "r") ) != NULL ) { while(1) { res=fgets(buf, 200, fp); if( res==NULL ) break; } else { fprintf(stderr, "\nErrore apertura file aziende.txt\n"); puts ("Premere x per uscire"); if ( ( ch= getc(stdin)) == 'x') exit (0); } in questo modo però memorizzo ogni volta il nome di una azienda sullo stesso buf e quindi è lavoro inutile, come faccio a memorizzare ogni volta su una stringa diversa? una cosa del genere funziona? for(a=0;a<100;a++) { fgets(buf, 30, fp); if (buf[0] != '\n') { sscanf(buf,"%s",nomeditta); /* però qui come faccio a salvare una stringa diversa al variare di a?*/ } } Ultima modifica di thessdd : 08-12-2006 alle 14:11. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
prima ti ho risposto pensando che stavi usando php, sono un po fuso.
potresti usare un vettore di stringhe, o ancora meglio, se ne hai possibilità potresti usare i vector delle std: std::vector<std::string> vector; con questo tipo di vettori non hai problemi di dimensione massima, sia delle stringhe che del vettore stesso. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:10.



















