#include #include #define N 2000 main() { FILE* f; /* alustetaan merkkijono s "tyhjäksi", ts. s[0]='\0', merkkijonon loppumerkki */ char c,s[N]; int i=0,n; /* avataan tiedosto lukemista ja kirjoittamista varten, s.e. tuhotaan mahdollinen olemassaoleva tiedosto ja luodaan uusi ("r+" avaisi jo olemassaolevan tiedoston) */ f = fopen("data_esim3.txt","w+"); printf("Enter a line of text:\n"); while( (c=getchar()) != '\n' ) { s[i]=c; i++; } s[i]='\0'; n=i; i=0; do { fputc((int)s[i],f); i++; } while( s[i] != '\0' ); /* luetaan merkit nyt käänteisessä järjestyksessä merkkijonoon s. tätä ennen on siirrettävä tiedosto-osoitin tiedoston alkuun. tämä tapahtuu void rewind(FILE* f) -funktiolla */ /* rewind(f); i=1; while(i<=n) { s[n-i]=fgetc(f); i++; } s[i]='\0'; */ /* toinen tapa lukea merkit käänteisessä järjestyksessä on edetä itse tiedostossa taaksepäin */ i=0; /* siirretään tiedosto-osoitinta yhden tavun verran taaksepäin ( ks. edempänä fseek-syntaksi) */ fseek(f,-1,SEEK_CUR); while(i