|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2007
Messaggi: 30
|
[C++] Aiuto
Come faccio, con il C/c++, ad aprire un file di testo? E come faccio a cercare una determinata parola sempre in un file di testo? Ad esempio, suponiamo che io voglia trovare la parola "casa" nel file "a.txt". Come faccio? Grazie in anticipo
__________________
La programmazione in generale --> http://vbprogramming.mastertopforum.com/index.php Se avete problemi con i principali linguaggi di programmazione, qui troverete le vostre risposte |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
il modo di fare ciò tra C e C++ varia parecchio; che linguaggio vuoi usare di preciso?
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 2007
Messaggi: 30
|
C (non C++)
__________________
La programmazione in generale --> http://vbprogramming.mastertopforum.com/index.php Se avete problemi con i principali linguaggi di programmazione, qui troverete le vostre risposte |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2007
Messaggi: 121
|
io uso sempre lo stesso metodo:
Codice:
#include <stdio.h> //PER LE FUNZIONI DI INPUT-OUTPUT #include <string.h> //PER LE FUNZIONI DELLE STRINGHE DI TESTO int Cerca(char *a, char *b) //CERCA a IN b { int i, j; if(strlen(a) > strlen(b)) return 0; for(i = 0; i < strlen(b) - strlen(a); i++) { int strIndex = 0; for(j = 0; j < strlen(a); j++) { if(b[i+j] != a[j]) break; else strIndex++; } if(strIndex == strlen(a)) return 1; } return 0; } int main() { int i = 0; char testo[1024]; //VARIABILE TESTUALE CONTENENTE MASSIMO 1024 CARATTERI FILE *f = fopen("c:\pippo.txt", "r"); //APRI IL FILE BELLO IN MODALITA' 'SOLA LETTURA' if(!f) //SE IL FILE NON VIENE APERTO TERMINA IL PROGRAMMA return 0; while(!feof(f)) //FIN QUANDO IL FILE NON E' FINITO { testo[i++] = (char)fgetc(f); } fclose(f); //CHIUDO IL FILE //ORA NELLA VARIABILE 'testo' E' CONTENUTO IL FILE (PURCHè IL FILE SIA PIU PICCOLO DI 1024 BYTES) if(Cerca("casa", testo) == 1) //SE IL FILE CONTIENE LA PAROLA "casa" printf("Il file contiene la parola casa!\n"); else printf("Il file non contiene la parola casa!\n"); return 0; //ESCI } |
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
apri il file con fopen, leggilo tutto in memoria con fread, chiudilo con fclose, cerca il testo direttamente nel buffer di memoria in cui hai caricato il contenuto del file.
per cercare nel testo basta che ti tieni un puntatore char* (assumendo che il contenuto del file sia condificato in ANSI, 8 bit per carattere) e lo incrementi di 1 utilizzando strncmp ad ogni iterazione (spero di essermi spiegato). |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:36.