Programma linguaggio C

gaetano010
salve a tutti,vorrei leggere una serie di stringhe da un file di testo,appena in questo file di testo viene trovata una parola scelta da me ( es viene trovata la parola "casa") il programma legge tale parola e poi arresta il ciclo di lettura.
il dubbio è: come faccio a dire al programma che quando legge questa parola arresta il ciclo di lettura?

Risposte
Raptorista1
Innanzitutto devi insegnare al programma a leggere una parola per volta.
Successivamente, devi esprimere il concetto di ripetere quella azione finché non succede una certa cosa.

gaetano010
"Raptorista":
Innanzitutto devi insegnare al programma a leggere una parola per volta.
Successivamente, devi esprimere il concetto di ripetere quella azione finché non succede una certa cosa.

il problema è che leggendo da un file di testo leggo solo le righe e quindi non riesco a leggere parola per volta...c'è un altro metodo ?

Raptorista1
Sì che ci riesci, solo che non c'è una funzione prefabbricata che lo fa: un po' di inventiva!

apatriarca
Tecnicamente fscanf permette di leggere una parola per volta..

gaetano010
"Raptorista":
Innanzitutto devi insegnare al programma a leggere una parola per volta.
Successivamente, devi esprimere il concetto di ripetere quella azione finché non succede una certa cosa.

aiutino?sto impazzendo letteralmente :roll: :roll:

Raptorista1
Comincia ad aiutarti da solo: mostra qualche pezzo di codice scritto da te.

gaetano010
"Raptorista":
Comincia ad aiutarti da solo: mostra qualche pezzo di codice scritto da te.

più di ciò non riesco...ho preso un file di testo in cui ci sono 3 parole:
stupido
ciao
uffa

#include <stdio.h> 
#include <string.h> 
#define MAX 81 
/* ricerca di parole in un file di testo */



int main() {
FILE *f1; 
  char P[MAX], S[MAX]; 
  int cont=0;
  int cont2=0;
  char s2[MAX]; 
  int i ;
  f1=fopen("F1.txt", "r"); 
  if (f1==NULL){ 
       printf("Errore apertura del file!\n"); 
       
  } 
  
  printf("\nParola da cercare ? "); 
  scanf("%s", P);   // in P ho la parola che cerco // p=ciao
  fscanf(f1, "%s", S); // in S ho la prima parola del file // s=stupido
for (i=0; S[i]!='\0'; i++)
s2[i] = S[i];
s2[i] = '\0';
  while (!feof(f1))  
  { 
   if (strcmp(S,P)==0){ 
     printf("\nHo trovato %s!\n", P); 
       cont++;        
   }
   if(cont==1&&cont2==0){
   printf("%s\n",P);
   break;
} else
cont2++;
   printf("%s\n",S);
   printf("%s\n",P);
   break;
   
   }

fclose(f1);
} 








gaetano010
"Raptorista":
Comincia ad aiutarti da solo: mostra qualche pezzo di codice scritto da te.

ho risolto da solo finalmente...grazie lo stesso

Raptorista1
Ottimo! Sono sicuro che hai imparato di più così che copiaincollando la soluzione di qualcun altro :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.