Programma in C. Lettura e scrittura su file .txt
Ciao a tutti, mi trovo a dover scrivere un programma in C ma sto facendo abbastanza fatica a venirne a capo.
Vi riporto in breve quanto devo fare:
Devo leggere un file input.txt e scrivere un file output.txt che contenga solamente gli URL presenti nel file input nell'ordine di lettura. Non ci sono vincoli nè sulla lunghezza del testo nè sulla lunghezza delle righe che lo compongono, ma solamente sulla lunghezza delle parole che sono lunghe al più 100 caratteri.
Il mio problema non sta tanto nello scrivere la parte di programma che riconosca gli URL, penso si tratti di utilizzare qualche "if" e qualche ciclo, quanto nel gestire il file di input: In particolare, come posso fare a "leggere le righe" di cui è composto così da poter effettuare su di esse i controlli per stabilire se contengono o meno URL ?
Vi riporto in breve quanto devo fare:
Devo leggere un file input.txt e scrivere un file output.txt che contenga solamente gli URL presenti nel file input nell'ordine di lettura. Non ci sono vincoli nè sulla lunghezza del testo nè sulla lunghezza delle righe che lo compongono, ma solamente sulla lunghezza delle parole che sono lunghe al più 100 caratteri.
Il mio problema non sta tanto nello scrivere la parte di programma che riconosca gli URL, penso si tratti di utilizzare qualche "if" e qualche ciclo, quanto nel gestire il file di input: In particolare, come posso fare a "leggere le righe" di cui è composto così da poter effettuare su di esse i controlli per stabilire se contengono o meno URL ?
Risposte
Un URL non può contenere spazi ed è quindi sufficiente leggere una parola per volta. In effetti il fatto che ci sia solo il limite della dimensione delle parole e non di righe o altro, fa supporre che il professore avesse in mente questo genere di lettura. Quindi puoi usare qualcosa del genere:
char parola[101]; /* 100 caratteri + terminatore di stringa.. */ /* ... */ fscanf(file, "%100s", parola); /* lettura di una parola di al massimo 100 caratteri. */
Ti ringrazio per il consiglio. Domani mattina provo a farlo fruttare; se dovessi avere problemi provo a richiedere aiuto. Grazie ancora.