|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
|
[C]Automa riconoscitore
Salve a tutti
Qualcuno mi puo' aiutare con un programma? Devo realizzare in c un programma che simuli il funzionamento di un automa riconoscitore che riconosce come sequenza di start 1111 e come sequenza di stop 1111. Codice:
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> void leggi_file(char*); void riempi_file(int); void stampa_stringa(char*,int); FILE *pFile; int main() { const int size=sizeof(int)*100; char *stringa; int fLenght,sLenght; srand(time(NULL)); fLenght=20+rand()%size; pFile=fopen("file.txt","w"); //apro il file in scrittura riempi_file(fLenght); //riempio il file di 0 e 1 stringa=(char*)malloc((sizeof(char*))*fLenght); leggi_file(stringa); sLenght=strlen(stringa); stampa_stringa(stringa,sLenght); free(stringa); getchar(); } void riempi_file(int Lung) { int i,randd; srand(time(NULL)); for(i=0;i<Lung;i++) { randd=rand()%7; switch(randd) { case 0:fputs("000",pFile);break; case 1:fputs("001",pFile);break; case 2:fputs("010",pFile);break; case 3:fputs("011",pFile);break; case 4:fputs("100",pFile);break; case 5:fputs("101",pFile);break; case 6:fputs("110",pFile);break; case 7:fputs("111",pFile);break; default:perror("Errore rand");break; } } } void leggi_file(char* stringa) { do{ fgets(stringa,255,pFile); }while(!feof(pFile)); fclose(pFile); } void stampa_stringa(char *stringa,int size) { int i; for(i=0;i<size;i++) printf("%c",stringa[i]); }
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school Wind FTTE Vula 100/20 - Stats Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
fgets(stringa,255,pFile);
E se la stringa è più corta di 255 (fLength < 255) ??? Qui c'è un buffer overflow... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:02.