codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *f;
    int num_linea = 0;
    int carat;
    int search;
    int occorrenze = 0;
    int count = 0;
    int ciclo,i=0;
    f = fopen("testo.txt","r");
    
    printf("\ninserisci numero da trovare:\n");
    scanf("%d",&search);
    printf("\nQuante volte provare:\n");
    scanf("%d",&ciclo);
    while((fscanf(f,"%d",&carat)>0) && (0!=ciclo))
    {
    ciclo--;
     if(carat == 0)
     {
     num_linea++;
     }
     
     if((carat == search) && (count < 3))
     {
     occorrenze++;
     count++;
     }
     
     if(count == 3)
     {
     i++;
     count = 0;
     }
    
     
    }
    
    fclose(f);
    
    printf("\nIl numero delle linee: %d\n", num_linea);
    printf("\nIl numero delle occorrenze: %d\n", occorrenze);
    printf("\nRighe che contengono il valore richiesto: %d\n", i);
    
    //system("PAUSE");
}
Questa è la mia soluzione, il problema che nel file ho dovuto mettere ad ogni riga uno 0 per contare il fine riga (come posso controllare il \n? nel caso di un intero?), inoltre devo farmi stampare i numeri di riga.

Questo è il mio file:

2 6 3 2 2 0
2 4 2 12 2 0
2 2 21 2 3 0
2 93 2 1 2 0
2 2 7 8 23 38 12 0

In output mi stampa
numero linee: 5
occorrenze trovate: 13
righe che contengono il valore righiesto: 4

Quest'ultimo mi deve dire valore contenuto nelle righe 1,2,3,4

Idee???