View Full Version : 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?
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
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?*/
}
}
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.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.