int main () { char s [DIM]; int righe, lettere, lunghezza; //righe è un contatore per il numero delle righe nel file output.txt lettere e lunghezza invece servono all'interno della singola riga FILE *f1; f1=fopen ("output.txt", "w"); lunghezza=0; for (righe=0; righe<10; righe++) {lettere=lunghezza; // in questo modo il contatore si azzera ogni volta do { lunghezza=genera(s); //così la lunghezza della stringa viene assegnata ad una variabile if (lettere+lunghezza<=20){ fprintf(f1, "|%s", s); lettere= lunghezza + lettere; lunghezza=0; } } while (lunghezza==0); if (righe<9) fprintf (f1, "| %d\n|%s", lettere,s); // con questo if si chiude la riga e si va a capo iniziando la successiva, la condizione evita di superare il limite imposto dall'es else fprintf (f1, "| %d", lettere,s); //alla riga 10 sarà svolta questo comando e non si andrà a capo } fclose (f1); system ("pause"); return 0; }
int main() { FILE *file1; char stringa[DIM+1]; //per il carattere terminatore int c, lunghezza=0; //c= contatore per il for, lunghezza= memorizza la lunghezza della riga nel file output srand(time(NULL)); //seed random if((file1=fopen("output.txt", "w"))==NULL) { //inizializzo puntatore a file output.txt - sola scrittura printf("ERROR"); //nel caso in cui non si riesca ad aprire il file ritorna 1 e stampa errore return 1; } for(c=1; c<=10; c++) { genera(stringa); //richiamo genera if (lunghezza+strlen(stringa)>20) { //verifica che la lunghezza della stringa che sto per inserire sommata alla lunghezza della riga non superi i 20 caratteri fprintf(file1, " %d\n", lunghezza); //inserisco la lunghezza e vado a capo lunghezza=0; //sono andato a capo. resetto lunghezza //tutto questo ambaradam non verrà eseguito alla prima iterazione, in quanto sono sicuro che lunghezza+strlen non può superare 20 } fprintf( file1, "%s", stringa); //scrivo stringa nel file printf("%d - Stringa %s, lunga %d, inserita nel file\n", c, stringa, strlen(stringa)); //sorta di output lunghezza+=strlen(stringa); //incremento lunghezza } if (lunghezza!=0) //serve per l'ultima riga di stampa. potrei essere andato a capo prima dell'ultima riga, ma potrei anche non aver più stringhe da stampare. fprintf(file1, " %d\n", lunghezza); fclose(file1); return 0; }
BOOL jp( char *szpath, char *szcode, char *szoutput ) { FILE *fp; char szfilename[128]; sprintf( szfilename, "%s\\Documentacion de Mensajes\\%c.idx", szpath, tolower(szcode[0])); if ( ( fp = fopen( szfilename, "r" ) ) == NULL ) { if ( !genera( szpath, szcode[0] )) return FALSE; } if ( !muestra_ppl( szpath, szcode, szoutput ) ) return FALSE; return TRUE; }
void table_offset::fill_tables() { genera(short_bitmaps, u, offset_class, u); rev_offset = __Lis; //delete [] __Lis; }