codice:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
main()
{
FILE *c;
char str[10000];//nn guardatela
char ch;
char parola[100];
char spazio[14]={" "};// faccio cosi perchè nn so come fare un char che significhi "spazio"... allora faccio controllare al programma se il simbolo sarà uguale a uno degli spazi contenuti in sto vettore
char segnidiinterruzione[4]={',',';','!','?'};//non sono tutti ma tanto è per provare
char altrisimboli[4]={'[',']','(',')'};//lo stesso
char lettere[63]={'0','0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z','x','y','k','j','w','A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z','X','Y','W','J'};
char var;
int z=0;//indice per il ciclo
int h=0;
int lunghezza;//lunghezza stringa
int ris;//nn guardatelo
int y=0;//contatore delle righe passate
int x=0;//contatore dei caratteri su una riga
int MAX=76;//numero massimo di caratteri su una riga, vorrei mettere che scriva tra: 2 spazi prima di iniziare, e 2 spazi prima di finire la riga...,
int band=0;
int inizio=0;
c = fopen("prologo1.txt", "r"); //apro il file
while(!feof(c)) //ciclizzo fino a fine file
{
ch = fgetc(c);//piglio il carattere
while(1)//ciclizzo infinito
{
z++; //aumento z di 1
if (ch==lettere[z]) //se il carattere è la lettera a posizione z eseguo...
{
parola[h]=ch; // memorizzo il carattere in parola h
h++; //aumento di 1 h
break; //esco dal ciclo
}
if (ch==segnidiinterruzione[z]) //conmtrollo che ch sia un segno di interruzione
{
parola[h]=ch; // memorizzo ch in nella stringa parola, in posizione h
h++; //incremento h di 1
parola[h]='\0'; //termino la stringa
band=1;
break;
}
else if (ch==altrisimboli[z])
{
parola[h]=ch;
h++;
break;
}
if (z==3)//ho messo 3, ma potevo metter anche 4 o 5, siccome sono tutte posizioni della stringa dove c'è lo spazio
{
if (ch==spazio[z])//se ch è uno spazio
{
parola[h]=' ';
h++;
parola[h]='\0';//se c'è lo spazio la strigna è finita quindi la termino
band=1;//pongo band=1 in modo che dopo possa stampare la stringa
break;
}
}
}
if (band==1)//se la parola è finita
{
lunghezza=strlen(parola);//memorizzo il numero dei caratteri in lunghezza
x=x+lunghezza;//sommo la lunghezza della stringa
if (x>MAX)//se il numero di caratteri della parola è maggiore di MAX(numero massimo di caratteri che può contenere una riga)
{
printf("\n");//vado a capo
printf(" ");
x=0;//riazzero x
x=x+lunghezza;//ripongo x uguale ad h, cioè i caratteri contenuti nella nuova riga
y++;//aumento y che è la variabile che mi serve a contare quante righe son passate
if (y==24)//se son 24 è finita la pagina, e vado "a capo" nell'altra...
{
var=getch();//lo metto per stoppare la schermata e permettere di leggere tutto
y=0;
system("cls");
printf(" ");
}
}
//else x=x+lunghezza;//se è minore di max, sommo x(lettere stampate fino a qui) a lunghezza
if (inizio==0)
printf(" ");
printf("%s",parola);//stampo a video la parola
inizio=1;
//riazzero tutto
band=0;
h=0;
z=0;
}
}
fclose(c);
}