Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 7. Napisz program, który:
- wczyta z pliku tekstowego DATA.txt informacje o 10 osobach: imię, nazwisko i wiek,
- zapisze je w zmiennej tablicowej o elementach typu struktury,
- 3wypisze tablicę struktur na ekran.
- Każda linia pliku ma zawierać dane jednej osoby o następującej postaci: imię nazwisko wiek
- (poszczególne człony rozdzielone pojedynczą spacją).
- Program należy napisać z podziałem na funkcje z parametrami. Ponadto ma
- on implementować obsługę
- wyjątków związanych z plikami, a w razie ich wystąpienia wypisywać użytkownikowi stosowny
- komunikat
- Przykładowe zadziałanie:
- [1] Jan Kowalski (35)
- [2] Piotr Kowalski (12)
- [3] Jan Iksinski (55)
- [4] Piotr Krol (24)
- [5] Adam
- Krol (7)
- [6] Anna Kowalska (87)
- [7] Anna Iksinska (26)
- [8] Magda Kowalska (72)
- [9] Magda Iksinska (98)
- [10] Ola Krol (2)
- Uwaga! Program nie może korzystać ze zmiennych globalnych!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct{
- char imie[30], nazwisko[30], wiek[20];
- }OSOBA;
- void czytaj_plik(OSOBA dane[12])
- {
- FILE *f;
- f = fopen("DANE.txt", "rt");
- char s[256];
- char korektor[] = " ";
- char * schowek;
- int k = 0;
- if (f == NULL)
- printf("Blad otwarcia pliku DATA.txt");
- int i = 0;
- for(i = 0; i < 10; i++)
- {
- fgets(s, 100, f);
- schowek = strtok( s, korektor );
- strcpy(dane[i].imie,schowek);
- while( schowek != NULL )
- {
- k++;
- schowek = strtok( NULL, korektor );
- if(k == 1)strcpy(dane[i].nazwisko,schowek);
- if(k == 2)strcpy(dane[i].wiek,schowek);
- }
- dane[i].wiek[2] = '\0';
- k = 0;
- }
- fclose(f);
- }
- void wyswietl_plik(OSOBA dane[12])
- {
- int i = 0;
- for(i = 0;i < 10;i++)
- {
- printf("[%d] %s %s (%s)\n", i+1, dane[i].imie, dane[i].nazwisko, dane[i].wiek);
- }
- printf("\n");
- }
- int main()
- {
- OSOBA dane[12];
- czytaj_plik(dane);
- wyswietl_plik(dane);
- system("Pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement