0.Napisać program, który wyświetli na ekranie zawartość pliku

usuwajac z niego spacje

1.Napisać program , który

a) zapisze do pliku textowego liczbę int w osobnej lini oraz liczbę

float oraz napis w jednej lini

b) odczyta tak zapisane dane z pliku

void main (void)

{

char c;

int i=6;

float f=65.6544;

char d[6]="zapis";

FILE *ff;

ff=fopen("zapis.txt","w");

{

fprintf(ff,"%d\n",i);

fprintf(ff,"%2.4f ",f);

fprintf(ff,"%s",d);

}

fclose(ff);

ff=fopen("zapis.txt","rt");

if(ff!=NULL)

{

while((c=getc(ff))!=EOF)

printf("%c",c);

while((c=getc(ff))!=EOF)

while(getc(ff)!='\n')

fscanf(ff,"%d",&i);

while(getc(ff)!=' ')

fscanf(ff,"%f",&f);

{

for(int i=0;i<6;i++)

fscanf(ff,"%c",&d[i]);

}

}

printf("\n\n%d %f\n",i,f);

for(int i=0;i<6;i++)

printf("%c",d[i]);

printf("nie ma pliku");

fclose(ff);

getch();

}

2.Zadeklarować strukturę, która przechowuje następujące dane

a)nazwisko i wiek w pełnych latach

b)zainicjowac w lini komend tablicę 3 takich struktur

c)zapisać strukturę do pliku w ten sposób, że w pierwszej linii

będzie ilośc struktur, natomiast pola poj. struktury

są zapisane w pojedynczej lini np.

2

kowalski 25

nowak 19

-------------------------------

#include<stdio.h>

#include<conio.h>

struct osoba

{

char naz[25];

int wiek;

};

//odczyt osoby z klawiatury

osoba wczytZklaw()

{

printf("\npodaj nazwisko i wiek ");

osoba o;

scanf("%s %d",o.naz,&o.wiek);

return o;

}

//wyswietlanie na ekranie

void wyswOsoba(osoba r)

{

printf("\nnazwisko:%s wiek:%d",r.naz,r.wiek);

}

//zapis na koniec pliku

void zapisNaKoniec(char nazwa_zbioru[], osoba r)

{

FILE *ff;

ff=fopen(nazwa_zbioru,"ab");

if(ff!=NULL)

{

{

fwrite(&r,sizeof(osoba),1,ff);

}

fclose(ff);

}

else

printf("ni ma pliku");

}

//wyswietlanie pliku

void wyswPlik(char *nazwa_pliku)

{

FILE *ff;

osoba r;

ff=fopen(nazwa_pliku,"rb");

if(ff!=NULL)

{

while(!feof(ff))

{

if(fread(&r,sizeof(osoba),1,ff)==1)

printf("\n%s\n%d",r.naz,r.wiek);

}

}

else

printf("ni ma pliku");

fclose(ff);

//wywołac wysw osoba

}

//odczytuje z pliku i wywietla zadany rekord

void odczyt(char *nazwa_pliku, int nr)

{

}

#define nazwa "ala.dat"

int main(void)

{

osoba o;

char opcja;

do{

printf("\n1.Zapis\n");

printf("2....\n");

printf("3.Wyświetlania\n");

printf("0.Koniec\n");

printf("podaj opcje:\n");

opcja = getch();

switch( opcja){

case '1': o = wczytZklaw();

zapisNaKoniec(nazwa,o);

break;

case '2':break;

case '3':wyswPlik(nazwa);

break;

}

}while (opcja != '0');

getch();

}

GRAFF

#include<stdio.h>

#include<conio.h>

struct sasiedzi

{

int ile;

int sas[10];

};

void wczyt(char *nazwa,sasiedzi graf[],int &ile_w)

{

FILE *ff;

if ((ff=fopen("graf.txt","rt"))!=NULL)

{

fscanf(ff,"%d", &ile_w);

for(int i=0; i<ile_w ; i++)

{

fscanf(ff,"%d", &graf[i].ile);

for(int j=0; j<graf[i].ile; j++)

{

fscanf(ff,"%d", &graf[i].sas[j]);

}

}

}

fclose(ff);

}

void wysw(sasiedzi graf[], int ile)

{

printf("%d",ile );

for(int i=0; i<ile ; i++)

{

printf(" \n %d|", graf[i].ile);

for(int j=0; j<graf[i].ile; j++)

{

printf("%d ",graf[i].sas[j]);

}

}

getch();

}

void main (void)

{

sasiedzi graf[10];

int ile_w;

char nazwa[10]="graf.txt" ;

FILE *ff;

wczyt(nazwa,graf, ile_w);

wysw(graf,ile_w);

getch();

}

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

struct osoba

{

char nazwisko[20];

int wiek;

osoba *next; //wskaźnik na nastepny element

} ;

//odczyt osoby z klawiatury

//return wskaźnik na na nowy element zaalokowany dynamicznie i wczytany z klawiatury

osoba *wczytZklaw()

{ char nazw[20];

int wiek;

osoba *nowy;

nowy=new osoba;

printf("podaj nazwisko");

scanf("%s",nowy->nazwisko);

printf("podaj wiek");

scanf("%d",&wiek);

nowy->wiek=wiek;

//alkoujemy pamiec

//wczytujemy z klawiatury

return nowy;

}

//dokladanie do poczatki

// start - początek listy

// element - wskaźnik na dodawany element

// return - zmodyfikowany poczatek listy

osoba* naKoniec(osoba * start, osoba *element)

{

osoba *px;

px=new osoba;

while(px!=NULL)

{

px=px->next ;

}

px->next=element ;

return start;

}

//wyswietlanie listy

void wysw(osoba *start)

{ osoba *px;

px=start;

while(px!=NULL)

{

cout<<px->nazwisko;

cout<<px->wiek;

px->next;

}

}

//usuwanie pierwszego elementu

// start - początek listy

// return - zmodyfikowany poczatek listy

osoba* usunpierwszy(osoba * start)

{

return 0;

}

//usuwanie ostaniego elementu

// start - początek listy

// return - ewentualnie zmodyfikowany poczatek listy (gdy lista była jednoelementowa)

osoba* usunOstani(osoba * start)

{

return 0;

}

//znajdowanie elmentu na podsatwie zadanego kryterium

//start - poczatek listy

//... - kryterium (wiek lub nazwisko)

//return - wskaźnik na znaleziony element lub NULL jesli nie znaleziono

osoba *znajdz(osoba *start,...)

{

return 0;

}

//----------------------------------------

int main(void)

{

char opcja;

osoba *lista = NULL;

osoba * pElem;

do{

printf("1.Dodawanie\n");

printf("2.Wsywietlanie\n");

printf("3.Usuwanie\n");

printf("4.Wyszukiwanie\n");

printf("0.Koniec\n");

printf("podaj opcje:");

opcja = getch();

switch( opcja){

case '1': pElem = wczytZklaw();

lista = naKoniec(lista,pElem); // lub lista = naKoniec(lista,pElem);

break;

case '2': wysw(lista);

break;

case '3': lista = usunpierwszy(lista);//lista = usunOstani(lista)

break;

case '4':pElem = znajdz(lista);

if(pElem != NULL){

//wyswietlic pElem->wiek i pElem->nazwisko

}

break;

}

}while (opcja != '0');

}