#include #define N 100 #define M 100 int main() { char names[M][N]; int i; FILE* f; /* Luodaan tiedosto-osoitin f. */ /* Asetetaan tiedosto-osoitin osoittamaan tiedoston h09t01.txt * alkuun. Tiedoston täytyy olla olemassa. Avataan tiedosto lukemista * ja kirjoittamista varten. */ f=fopen("C:/Documents and Settings/yliopisto/Desktop/atk1_pe/h09t01.txt","r+"); /* Tarkistetaan, onnistuiko avaus. */ if(f==NULL) { printf("OMG!!!1!1 Unable to open file!\n"); return 1; /* Ohjelman suoritus loppuu. */ } i=0; /* Luetaan tiedstosta merkkijono ja sijoitetaan se * taulukkoon names. Huom. names[i] on siis merkkijono * (tai merkkijonon 1. alkion osoite). */ fscanf(f,"%s",names[i]); /* Luetaan tiedosto loppuun asti ja sijoitetan kaikki * nimet taulukkoon names. */ while(!feof(f)) { printf("%s\n",names[i]); fscanf(f,"%s",names[++i]); } /* Siirretään tiedosto-osoitin tiedoston alkuun, ja tyhjennetään * lukupuskuri varmuuden vuoksi luku- ja kirjoitustoimintojen * välillä. */ rewind(f); fflush(f); i--; /* Kirjoitetaan luetut nimet tiedostoon käänteisessä järjestyksessä. */ while(i>=0) { fprintf(f,"%s\n",names[i--]); } /* Suljetaan tiedosto. */ fclose(f); return 0; }