PDA

View Full Version : problema codifica rle in c


razzoman
19-06-2013, 20:32
ciao a tutti sto provando a fare questo programma in c, mi da zero errori provo a convertirlo, me lo fa convertire, ma ovviamente spara solo lettere random. Ecco il codice
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define N 513
int main(int argc, char *argv[])
{ char v[N],c;

FILE *f;
FILE *f2;
int s,i=0,p=0;
f=fopen(argv[1],"r");
f2= fopen(argv[2],"w");
while(!feof(f))
{
fscanf(f,"%c",v);

s= strlen(v);
for(i=1;i<s;i++)
{
if(v[i]==v[i+1])
{ c= v[i];
p++;
} fprintf(f2,"%d %c",p , c);
if(v[i]!=v[i+1])
{
c=v[i+1];
p=0;}
fprintf(f2,"%c",c);

}




}


fclose(f);
fclose(f2);
return 0;
}
cosa posso fare ??grazie

tecno789
22-06-2013, 10:33
l'algoritmo rle funziona solo se i file sono di tipo binario, tu li inizializzi di tipo testuale

razzoman
22-06-2013, 22:17
l'algoritmo rle funziona solo se i file sono di tipo binario, tu li inizializzi di tipo testuale

Ciao alla fine l ho risolto, l algoritmo più o meno c era, dovevo fare solo qualche aggiustamento

tecno789
23-06-2013, 08:00
Ciao alla fine l ho risolto, l algoritmo più o meno c era, dovevo fare solo qualche aggiustamento

si l'algoritmo c'è solo che non capisco perché lo aprì in formato testuale

razzoman
23-06-2013, 15:46
si l'algoritmo c'è solo che non capisco perché lo aprì in formato testuale

Era il compito che diceva di aprirlo da file e metterlo in un altro file