Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h> //Biblioteka umozliwiajaca korzystanie z lancuchów znakow.
- void zamien( int a, int b ) //Funkcja zamien.
- {
- int bufor=a;
- a=b;
- b=bufor;
- }
- int main()
- {
- FILE *plik1,*plik2;
- char nazwa[32]; //Tablice charow przechowujace nazwy plikow.
- char nazwa2[32];
- char * kropka;
- printf("Podaj nazwe pliku z rozszerzeniem .txt: ");
- scanf("%s", &nazwa);
- //Utworzenie pliku wynikowego xxx_mod.txt :
- kropka = strchr( nazwa, '.' ); //strchr zwraca wskaznik do pierwszego napotkania znaku '.'.
- strncpy(nazwa2,nazwa,kropka-nazwa); //strncpy kopiuje tekst z pierwszej tablciy znakow do drugiej (z nazwa do nazwa2).
- nazwa2[kropka-nazwa]='\0'; //Koniec tablicy charow z nazwa pliku "xxx_mod.txt" ustawiam w miejscu wystapienia znaku '.'.
- strcat(nazwa2,"_mod.txt"); //strcat skleja wydzielona czesc przed zniakiem '.' z "_mod.txt".
- plik1 = fopen(nazwa,"r"); //Otwarcie pliku Ÿród³owego w trybie odczytu.
- if (plik1 == NULL)
- {
- printf("Blad otwarcia pliku!\n");
- return 1;
- }
- plik2 = fopen(nazwa2,"w"); //Otwarcie pliku wynikowego w trybie zapisu.
- if (plik2 == NULL)
- {
- printf("Blad otwarcia pliku!\n");
- return 1;
- }
- int i=0, dl;
- char wiersz[500],lchar[50];
- float liczba[50];
- while(!feof(plik1)) //Sprawdza do konca pliku i zapisuje cale wiersze, potem z calego wiersza zapisuje ka¿de liczby w charze i na koniec konwertuje tablice charow do float.
- {
- fgets(wiersz,500,plik1); //Funkcja stream czyta kolejne znaki ze strumienia plik1 i umieszcza je w tablicy znakowej "wiersz".
- dl=strlen(wiersz);
- int j=0;
- int n=0;
- for (i=0; i<dl; i++)
- {
- if (wiersz[i]==' ')
- {
- if (wiersz[i+1]==' ') // Jesli napotka na spacje, ma nadal analizowac plik tekstowy.
- continue;
- else
- {
- int k=0;
- for (j; j<=i; j++)
- {
- lchar[k]=wiersz[j]; //Zapis liczb do tablicy znakowej char.
- k++;
- }
- liczba[n]=atof(&lchar); //atof - zwraca wartosc liczby w postaci zmiennoprzecinkowej (double).
- n++;
- }
- }
- }
- float min=liczba[0], max=liczba[0];
- for (i=1; i<n; i++)
- {
- if (min>liczba[i])
- {
- zamien(min,liczba[i]); //Wywo³anie funkcji zamien.
- }
- if (max<liczba[i])
- {
- zamien(min,liczba[i]);
- }
- }
- fprintf(plik2,"n= %d, min= %f, max= %f\n",n,min,max);
- }
- fclose(plik2); //Zamykam plik zrodlowy.
- fclose(plik1); //Zamykam plik wynikowy.
- printf("\n\nDane wynikowe - xxx_mod.txt, xxx to nazwa pliku zrodlowego bez rozszerzenia.\n\n\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement