Chucky-GFX
Mitglied
Hallo, ich habe folgendes Problem , und zwar habe ich ein Programm geschrieben das eine Datei ausliest, diese anzeigt, die Anzahl sowie die Prozentzahl der vorhandenen Zeichen ausgibt.
Danach werden die Zeichen nochmal nach ASCII sotiert.
So nun zum tatsächlichen Problem, welches darin besteht, dass die Ausgabe in die Textfile total "wirsch" ist und nicht wirklich Ordentlich ist.
Deswegen die frage, wie kann man das sprintf so formatieren das es vernünftigt aussieht,
z.b. Komma unter Komma usw.
Danach werden die Zeichen nochmal nach ASCII sotiert.
So nun zum tatsächlichen Problem, welches darin besteht, dass die Ausgabe in die Textfile total "wirsch" ist und nicht wirklich Ordentlich ist.
Deswegen die frage, wie kann man das sprintf so formatieren das es vernünftigt aussieht,
z.b. Komma unter Komma usw.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main()
{
FILE *datei;
FILE *datei2;
unsigned char text[20000];
unsigned char output[1999999];
unsigned int test[10000];
char file[20];
char save[20];
float ixy,ixz;
int ix,iy;
anfang:
printf("/******************************************************************\\\n");
printf("/* Welche Textdatei soll ausgelesen werden (z.B. test.txt) ? *\\\n/* ");
scanf("%s",&file);
datei = fopen(file,"r+");
if(datei == NULL)
{
printf("/******************************************************************\\\n");
printf("/* Fehler - Bitte vorhandene Datei angeben. *\\\n");
printf("/******************************************************************\\\n");
printf("/* ");
system("PAUSE");
goto anfang;
}
else
{
printf("/* *\\\n");
printf("/* Speichern unter (z.B. write.txt)... *\\\n/* ");
scanf("%s",&save);
printf("/******************************************************************\\\n");
fseek (datei , 0 , SEEK_END);
int lSize = ftell(datei);
rewind (datei);
fread(text,1,lSize,datei);
fclose(datei);
printf(text);
datei2 = fopen(save,"w+");
rewind (datei2);
fwrite(text,1,lSize,datei2);
printf("\n\n");
for(ix=0;ix<strlen(text);ix++)
{
for(iy=0;iy<94;iy++)
{
if(text[ix]==32+iy) test[iy]++;
}
}
for(ix=0;ix<=94;ix++)
{
sprintf(output,"/* %c - %i * Vorhanden - %i Prozent des Textes\n",ix+32, test[ix], (test[ix]*100)/strlen(text));
printf(output);
fwrite(output,1, sizeof(output),datei2);
}
printf("\n\n");
for(ix=0;ix<94;ix++)
{
for(iy=0;iy<test[ix];iy++)
{
printf("%c", ix+32);
}
}
printf("\n");
fclose(datei2);
system("PAUSE");
}
}