Witam! Zrobiłem program. Odczytuje on z pliku pierwszą liczbę (ile liczb będzie w danej linijce) i potem szczytuje liczby oddzielone spacją w jednej linijce i sortuje od najmniejszej do największej. Czy ktoś podpowie jak przekształcić program, zeby nie trzeba było podawać tej pierwszej wartości, jak zadeklarować wielkośc tablicy potrzebnej do przechowywania liczb dopiero po szczytaniu ich oraz gdzie powinienem użyć procedury xyz.close(); ?
KOD:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ifstream in;
ofstream out;
in.open("odczyt.txt");
out.open("zapis.txt");
if (in.good()==false)
{
cout<<"Plik wejsciowy nie istnieje" << endl;
}
cout << "Sortowanie liczb z pliku" << endl;
do{
double T[100];
int licznik;
in >> licznik;
for (int i2=0; i2<licznik; i2=i2+1)
{
in >> T[i2];
}
for ( int l=licznik-1; l>0; l--)
{
for (int i1=0; i1<l; i1++)
{
if (T[i1]>T[i1+1])
{
double x=T[i1+1];
T[i1+1]=T[i1];
T[i1]=x;
}}}
cout << "Liczby w kolejnosci od najmniejszej do najwiekszej: " << endl;
for (int a=0; a<licznik; a=a+1)
{
cout << T[a];
out << T[a];
if (a!=licznik-1)
{
cout << ", " ;
out << ", ";
}}
cout << endl;
out << endl;
} while (!in.eof());
}