Witam. Mam problem, kompletnie nie wiem jak odczytywać dane z pliku. Mam zrobić na zadanie program który porówna liczby z pliku (w moim przypadku jest ich 1000), wyświetli najmniejszą i największą a także wiersz w którym się one znajdują. Mój pomysł był taki żeby przed while(getline(plik,linia)) pobrał pierwszą wartość i porównywał z nią. Nie mam zielonego pojęcia jak to zrobić, tak samo jak pozostałe liczby. Ogólnie rzecz biorąc program nie pobiera żadnych danych z pliku :/
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <string>
using namespace std;
main()
{
int a,b,d,f,g,h,i,j,k;
int numer_linii=2;
long liczba[numer_linii];
fstream plik;
f=numer_linii;
plik.open("C:\\Users\\Kamil\\Desktop\\dane\\liczby.txt", ios::in);
if(plik.good()==false)
{
cout<<"Plik nie istnieje"<<endl;
}
string linia;
h=j;
while(getline(plik,linia))
{
h++;
a=liczba[numer_linii];
numer_linii++;
if(a>b)
{
g=a;
i=h;
}
if(b>a)
{
j=b;
k=h;
}
}
plik.close();
plik >> linia;
system("PAUSE");
return EXIT_SUCCESS;
}
To ma być mniej więcej coś takiego (tylko tutaj coś zepsułem z wierszem najmniejszej liczby)
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
main()
{
long a,b,c,d,e,f,g,h;
cout<<"Wprowadź ilość liczb "<<endl;
cin>>a;
cout<<"Wprowadź wartość liczby " <<endl;
cin>>b;
c = b;
d = b;
e=1;
f=1;
for(int i = 2; i<=a; i++)
{
e++;
cin>>b;
if(b>= c)
{
c=b;
g=e;
}
if(b<d)
{
d=b;
h=e;
}
}
cout<<"Największa liczba zbioru to: "<<c<<" Znajduje się ona w wersie: "<<g<<endl;
cout<<"Najmniejsza liczba zzbioru to: "<<d<<" Znajduje się ona w wersie: "<<h<<endl;
system("PAUSE");
}