codice:
/*
* Corso di Laurea triennale in informatica
* Programmazione 1 - Laboratorio
*
*/
#include <iostream>
#include <fstream>
#include <cstring>
//#include <cstdlib>
using namespace std;
const int DIM = 100;
int main (int argc, char *argv[]) {
fstream fin, fout;
char word[DIM], input_file[DIM], output_file[DIM];
int n=0, ripetizioni=0; char d;
if (argc != 4) {
cout << argv[0] << ": numero di parametri errato!"
<< endl;
// exit(0);
return 1;
}
strcpy(input_file,argv[1]);
d = argv[2][0];
n = atoi(argv[3]);
fin.open(input_file, ios::in);
if (fin.fail()) {
cout << argv[0] << ": errore nell'apertura del file "
<< argv[1] << "!" << endl;
return 1;
}
cout << "Inserisci il nome del file di output: ";
cin >> output_file;
fout.open(output_file, ios::out);
if (fout.fail()) {
cout << argv[0] << ": errore nell'apertura del file "
<< argv[1] << "!" << endl;
return 1;
}
fin >> word;
while (!fin.eof()) { // finche’ lo stram non ha raggiunto la fine
ripetizioni=0;
for(int i=0; i < strlen(word); i++) {
if (word[i] == d) {
ripetizioni++;
if (ripetizioni == n) {
fout << word << endl;
}
} else {
ripetizioni=0;
}
}
fin >> word;
}
fin.close();
fout.close();
return 0;
}
Buongiorno a tutti. Vi scrivo quest'oggi per cercare di capire a cosa servano i "fin>>word" che trovate nelle ultime righe del programma.
Vi lascio il testo dell'esercizio:
Esercizio 2
Implementare un programma che, dato un le di testo, un carattere D ed
un intero N passati come argomento da linea di comando, crei un nuovo
le (il cui nome e letto da tastiera) contenente le parole che contengono
ripetizioni del carattere D lunghe almeno N.
Esempio: ./a.out testo.txt n 2
Inserisci il nome del file di output: risultato.txt
Creato file risultato.txt !
anno
malanno
sapranno
anno
Quello che non riesco a capire è il perché venga messo il fin >> word, quando dovrebbe essere il programma a cercare le parole. Da quello che so io, il fin richiede un inserimento da tastiera di una stringa. Ma nel testo dell'esercizio non viene chiesto di inserire alcuna parola tramite tastiera.
Qualcuno sa aiutarmi?
Grazie e buone feste a tutti.
Stefano