Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Leggere lista di parole come array
Forum - C/C++ - Leggere lista di parole come array

Avatar
redlion (Normal User)
Newbie


Messaggi: 10
Iscritto: 11/09/2006

Segnala al moderatore
Postato alle 10:49
Domenica, 10/06/2007
Giorno a tutti,
ieri mi è capitato di dover scrivere uno script in PHP che calcolasse tutte le permutazioni da 00 a 99 di una lista di parole, prendendo in input un file.txt e restituendone un altro con
nome00
nome01
..
nome99
Per tutte le parole del primo file.
Grazie alla funzione file() è stato facile, visto che ogni riga del file di testo veniva automaticamente inserita in un array di stringhe.

Per fare la stessa cosa in C++, ho cercato qualcosa di simile, ma non sapendo a priopri la lunghezza di ogni riga, ho provato solo a lavorare con i fgetc(), qualche loop e i caratteri di fine riga.. ma il codice si è indubbiamente appesantito.

C'è qualche funzione che potrebbe risolvere questa situazione?
Thx


"Una delle principali cause della caduta dell'Impero Romano fu che, privi dello zero, non avevano un modo per indicare la corretta terminazione dei loro programmi C." (Robert Firth)
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 13:39
Domenica, 10/06/2007
visto che usi C++ e non C ti conviene usare le classi

string

e

vector

hai un esempio qui:
http://www.pierotofy.it/pages/sorgenti/browse/14342/126/

Codice sorgente - presumibilmente Delphi

  1. [...]
  2.  vector<string> parole; // memorizza le parole presenti nel file
  3.         [...]
  4.         ifstream* in = new ifstream(file.c_str());// allocazione dinamica, dato che il nome del file si sa a run-time
  5.         if(!in->is_open()) { // se il file non è stato trovato
  6.             // avverti l'utente
  7.             cerr << "Errore: file " + file + " non trovato" << endl;
  8.             cout << "Premi un tasto ed invio per continuare... ";
  9.             cin >> ch;
  10.             exit(1);// esci in errore
  11.         }
  12.         string s; // stringa temporanea in cui salvare la parola corrente
  13.         while(*in >> s) {
  14.             parole.push_back(s); // aggiungila al vettore di stringhe
  15.         }
  16. [...]



ciao

Ultima modifica effettuata da netarrow il 10/06/2007 alle 13:46



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote