Programma che copia l'inverso di un file in un altro

di Anonimizzato7070 il
1 risposte
Ragazzi sto facendo un po di esercizi per l'esame di Laboratorio di Sistemi Operativi

Dovevo risolvere un esercizio che prende imput da tastiera e lo scrive in un file.Poi prende il contenuto di questo file e lo scrive all'inverso in un secondo file..

Ho prodotto questo risultato
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#define BUFFSIZE 1000

int main (void){

  FILE *fdin,*fdout;
  int pos,contr=0;
  char buff[BUFFSIZE],c;

  fdin=fopen("File1","w+");

  fgets(buff,sizeof(buff),stdin);
  fputs(buff,fdin);

  fdout=fopen("File2","w+");

  fseek(fdin,0,SEEK_END);

  while((pos=ftell(fdin))>=0 && contr==0){
	if(pos==0){
	  contr=1;
	}
	printf("pos= %d",pos);
	c=fgetc(fdin);
	fputc(c,fdout);
        fseek(fdin,-2,SEEK_CUR);
  }

return 0;
}
Non capisco perchè alla fine della parola scritta all'inverso mi aggiiunge un carattere in più

1 Risposte

  • Quando utilizzi la prima fseek il puntatore dello stream fdin si sposta a fine file e non sull'ultimo char.

    Saluti,
    Max
Devi accedere o registrarti per scrivere nel forum
1 risposte