Odczyt liczb z pliku i wyświetlenie tylko tych większych od 100

0

Witam państwa. Napotkałem problem w swoim programie otóż w pliku txt mam zapisane liczby oddzielone spacją i mam napisać program który wyświetli tylko te liczby które są większe od 100. Jak to zrobić ?

0

Wczytuj (std::fstream), sprawdzaj czy są większe od 100 i wyświetlaj.

0

Może lepiej podam panu kod który napisałem

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    string linia;
    string liczby [100] ;
    int nr_linii=1;


    ifstream plik;
    plik.open("plik_wejsciowy.txt", ios::in);

    if(plik.good()==false)
    {
        cout<<"Plik nie istnieje!"<<endl;
        exit(0);
    }

   for(int i=0; i<100; i++)
   {
       plik >> liczby[i];
   }
   for(int i=0; i<100; i++)
   {
       cout<<liczby[i]<<endl;
   }


     cout<<endl<<"Nacisnij enter aby zakonczyc program...";
    cin.ignore();
    cin.get();
}
1

Wczytuj liczby, nie stringi. Poza tym, teraz wczytujesz równo 100 liczb, a nie liczby i nie sprawdzasz ich wartości

0

Czy mógłbym poprosić Pana od podpowiedź w postaci przerobienie kodu ?

1
int main()
{
    std::ifstream f("numbers.txt");
    int n;
    while(f >> n)
        if(n > 100)
            std::cout << n << '\n';
}
0

Bardzo Panu dziękuję

Miałbym jeszcze jedno pytanie do Pana a jakbym chciał teraz te liczby zapisać do pliku aby były oddzielone spacją to zamienić na string ?

0

Bez przesady z tymi panami. Możesz przekierować wyjście procesu:

./a.out > out.txt

Ewentualnie w kodzie:

int main()
{
    std::ifstream in("numbers.txt");
    std::ofstream out("out.txt");
    int n;
    while(in >> n)
        if(n > 100)
            out << n << ' ';
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1