School-Coding-Cpp/file/filtralinee_fauser.cpp

36 lines
911 B
C++

/*
AUTORE: Manuel Vichi
Scrivere una funzione che accetti come parametri d'ingresso due nomi di file e una parola P e
memorizzi nel secondo file le sole righe del primo che contengono P
*/
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
void filtraLinee(const char* fileNameRead, const char* fileNameWrite, const char* word) {
FILE* file = fopen(fileNameRead,"r");
if (file != NULL) {
FILE* destination = fopen(fileNameWrite,"w");
if (destination != NULL) {
char riga[256];
while (fgets(riga, sizeof(riga),file)) {
if (strstr(riga, word)) {
fputs(riga, destination);
}
}
fclose(destination);
}
else {
perror("Errore nella scrittura del file");
}
fclose(file);
}
else {
perror("Errore nella lettura del file");
}
}
int main(void) {
filtraLinee("righe.txt","righeParole.txt","Moodle");
return 0;
}