#include <stdio.h>
#include <iostream>
#include <string>
#include <time.h>
#include <fstream>
const int n=4;
const int m=6;
//////////////
struct notebook
{
char nazwa[20];
float cena;
};
////////////
using namespace std;
//////////////////////////////
void losuj(int tab[][m], int m);
void otworz_do_zapisu (ofstream &plik, const char nazwa_pliku[]);
void zapisz_do_pliku(ofstream &plik , int tab [][m], int n,int y);
int szukanie_znaku(char tekst [], int *s);
int dlugosc(char tekst[]);
void otworz_do_odczytu ( ifstream &plik, const char nazwa_pliku[] );
void ilosc_wierszy (ifstream &plik, int &licznik);
void czy_pusty(ifstream &plik);
void wypisz(int tab[][m], int n);
void czytaj_z_pliku(ifstream &plik, notebook tab[]);
void wyswietl(notebook tab[], int &ile);
/////////////////////////////
int main ()
{ int y;
int M[n][m];
ofstream plik_we;
ifstream plik_wy;
char tekst [100];
int wskaznik;
int licznik=1;
char c;
int x;
srand(time(0));
///////////zad 1////////////
otworz_do_odczytu (plik_wy,"pl1.txt") ;
ilosc_wierszy (plik_wy,licznik);
cout<<"Wierszy w pliku jest : "<<licznik<<endl; //dla sprawdzenia ile jest wierszy
//notebook *A = new notebook [licznik];
notebook *A;
A = new notebook [licznik];
czytaj_z_pliku(plik_wy,A);
//cout << "Zawartosc pliku:" << endl;
wyswietl(A,licznik);
plik_wy.clear();
plik_wy.close();
a to funkcje
void czytaj_z_pliku(ifstream &plik, notebook tab[])
{ for (int i=0;i<3;i++)
{
plik.getline(tab[i].nazwa,20,' ');
plik>>tab[i].cena;
plik.get();
}
}
void wyswietl(notebook tab[], int &ile)
{
for(int i=0;i<ile;i++)
cout<<tab[i].nazwa<<" " <<tab[i].cena<<endl;
}
void ilosc_wierszy (ifstream &plik, int &licznik)
{char c;
while(plik.get(c))
{
if(c == '\n')
licznik++;
}
}
Mam probem.. bo jak wiem ile elementów jest w pliku to nie ma problemu, ale jak mam dynamicznie przydzieloną pamięc , ilość elementów w tablicy , to wychodzą śmieci...
Co robie nie tak?