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');
}