odczyt i zapis do pliku, sortowanie tablicy - C++

0

Hej ludziska!! Mógłby mi ktoś pomóc z napisaniem drugiej części skryptu, a mianowicie wyświetli liczby parzyste rosnąco i zapisze je w drugim pliku?? (Napisz program, który wczyta liczby z pliku tekstowego (do pobrania tutaj) i wyświetli tylko te liczby, które są parzyste w kolejności rosnącej.
Program powinien również zapisać wynik działania do pliku tekstowego zadanie21.txt)

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

using namespace std;

int main()
{
   fstream plik;
   plik.open("tekst.txt", ios::out);
   
     for(int i=0;i<tab[1];i++)
                if(tab[1]%2==0) 
                        cout<<tab[1]<<" "; 
 
        cout<<endl;
   
      
plik<<tab[1]<<endl; 
plik.close();
    system ("pause");
    return 0;
}
0

Błagam... zapnij źródło w znaczniki <code class="cpp"></code> bo już nie mam siły przeglądać źródła postu żeby się domyślać o co chodzi. To już któryś z kolei taki post!

0

Czemu dwa razy #include <fstream>?

Nie za bardzo rozumiem, co konkretnie robisz w tym programie.
Otwierasz plik tekst.txt.
Następnie tab[1] razy wypisujesz na ekran tab[1] (a nie tab[i]), ale tylko o ile tab[1] jest parzyste.
Wreszcie wypisujesz tab[1] do swojego pliku, który w końcu zamykasz.
Tego tab[1] nigdzie nie zadeklarowałaś i nigdzie nie przypisałaś mu żadnej wartości.

Co Ty tak naprawdę próbujesz tu osiągnąć?

0

Dobra, zakładam, że liczby są w formacie:
[liczba][ENTER][liczba][ENTER]...[liczba][ENTER]

#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;

int main() {
	fstream odczyt("test.txt", ios::in);
	if (odczyt.is_open()) {
		vector<int> liczby;
		string linia = "";
		int liczba = 0;
		while (getline(odczyt, linia))
			if ((liczba = atoi(linia.c_str())) % 2 == 0) {
				liczby.push_back(liczba);
				cout << liczba << endl;
			}
		sort(liczby.begin(), liczby.end());
		fstream zapis("zapis.txt", ios::out);
		if (zapis.is_open()) {
			for_each(liczby.begin(), liczby.end(), [&](int liczba) { zapis << liczba << endl; });
			zapis.close();
		}
		odczyt.close();
	}
	return 0;
}

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