58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
Classe: 3AIN
|
|
Data: 10/04/2025
|
|
|
|
es12. (contalinee)
|
|
Scrivere una funzione che accetti due parametri (un nome di file e una stringa S) e
|
|
restituisca il conteggio delle righe contenenti S oppure -1 nel caso di errori nella
|
|
gestione del file. Dopo aver creato un file di testo, utilizzare la funzione per
|
|
contare le linee del file che contengono la parola BIANCO.
|
|
*/
|
|
|
|
#include <iostream>
|
|
|
|
#define SIZE_LINE 1000+1
|
|
|
|
using namespace std;
|
|
|
|
void contaLinee(const char * nomeFile, char * str);
|
|
|
|
int main(void) {
|
|
char nomeFile[SIZE_LINE];
|
|
char str[SIZE_LINE];
|
|
|
|
cout << "Nome file: ";
|
|
cin >> nomeFile;
|
|
|
|
cout << "Parola da cercare: ";
|
|
cin >> str;
|
|
|
|
cout << endl;
|
|
contaLinee(nomeFile, str);
|
|
cout << endl;
|
|
|
|
return 0;
|
|
}
|
|
|
|
void contaLinee(const char * nomeFile, char * str) {
|
|
|
|
FILE * fp = fopen(nomeFile, "rt");
|
|
|
|
if (fp != NULL) {
|
|
char line[SIZE_LINE];
|
|
int countLine = 0;
|
|
|
|
while (fgets(line, sizeof(line), fp) != NULL) {
|
|
if (strstr(line, str) != NULL) {
|
|
countLine++;
|
|
}
|
|
}
|
|
cout << countLine;
|
|
|
|
fclose(fp);
|
|
} else {
|
|
cout << "-1";
|
|
}
|
|
} |