Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Mateusz Buława */
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define MAX 20
- struct pilkarz {
- char nazwisko[40];
- char klub[40];
- float zarobki;
- struct pilkarz *next;
- };
- struct pilkarz fun1() {
- struct pilkarz* nowy = (struct pilkarz*)malloc(sizeof(struct pilkarz));
- printf("\nPodaj nazwisko pilkarza: ");
- scanf("%s", &nowy->nazwisko);
- printf("\nPodaj klub pilkarza: ");
- scanf("%s", &nowy->klub);
- printf("\nPodaj zarobki pilkarza: ");
- scanf("%f", &nowy->zarobki);
- return *nowy;
- }
- int main() {
- FILE * A;
- char wejscie[MAX];
- //otwarcie pliku
- printf("Podaj nazwe pliku z rozszerzeniem .txt: ");
- scanf("%s", &wejscie);
- A = fopen(wejscie, "r");
- //blad otwarcia pliku
- if (A == NULL) {
- printf("\nBlad otwarcia pliku.\n");
- fclose(A);
- return 0;
- }
- else
- printf("Plik wejsciowy zostal otwarty.\n");
- struct pilkarz * pel = NULL; //pierwszy element
- struct pilkarz * pom = NULL; //wskaznik na blok listy
- int rozmiar = 0;
- //tworzenie listy
- while (feof(A) == 0) {
- rozmiar++;
- if (pel == NULL) {
- pel = pom = (struct pilkarz*)malloc(sizeof(struct pilkarz));
- }
- else {
- pom->next = (struct pilkarz*)malloc(sizeof(struct pilkarz));
- pom = pom->next;
- }
- //wczytanie z pliku do listy
- fscanf(A, "%s %s %f", &pom->nazwisko, &pom->klub, &pom->zarobki);
- //wypisanie w konsoli
- printf("\nNazwisko pilkarza: %s, klub: %s, pensja: %.2f$", pom->nazwisko, pom->klub, pom->zarobki);
- pom->next = NULL;
- }
- struct pilkarz new_el = fun1(); //nowy element utworzony przez użytkownika
- pom = &new_el;
- pom->next = pel;
- pel = pom;
- int j = 0;
- while (j<(rozmiar+1) ){
- printf("Nazwisko pilkarza: %s, klub: %s, pensja: %.2f$\n", pom->nazwisko, pom->klub, pom->zarobki);
- pom = pom->next;
- pom->next;
- j++;
- }
- //usuniecie "starej" glowy
- struct pilkarz* usun;
- usun = pel->next;
- pel->next = pel->next->next;
- free(usun);
- //otwarcie pliku wyjsciowego oraz zapisanie listy
- FILE* B;
- char wyjscie[MAX];
- printf("\nPodaj nazwe pliku wyjsciowego: ");
- scanf("%s", &wyjscie);
- B = fopen(wyjscie, "w");
- //blad otwarcia pliku
- if (B == NULL) {
- printf("\nBlad otwarcia pliku.\n");
- fclose(B);
- return 0;
- }
- else
- printf("Plik wejsciowy zostal otwarty.\n");
- int k = 0;
- pom = pel;
- while (k<(rozmiar)) {
- fprintf(B, "\nNazwisko pilkarza: %s, klub: %s, pensja: %.2f$", pom->nazwisko, pom->klub, pom->zarobki);
- pom = pom->next;
- pom->next;
- k++;
- }
- //koniec programu
- fclose(A);
- fclose(B);
- while (pom != NULL) {
- pel = pom;
- pom = pel->next;
- free(pel);
- }
- printf("\nKoniec programu.\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement