• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sortowanie liczb z pliku

Object Storage Arubacloud
0 głosów
827 wizyt
pytanie zadane 24 marca 2021 w C i C++ przez jan1 Nowicjusz (220 p.)

Muszę posortować liczby z pliku i zapisać je do innego pliku. Jestem na etapie czytania liczb z pliku, ale nie mogę sobie poradzić z sortowaniem. Proszę o pomoc, sortowanie może być dowolną metodą. Dodaje mój aktualny kod.

#include<iostream>
#include<fstream>

using namespace std;

int main()
{
	int a, b;
	ifstream odczyt("Liczby.txt");
	
	if(odczyt.is_open())
	{
		char wiersz[10000];
		while(odczyt.getline(wiersz,10000))
		{
			cout<<wiersz<<endl;
		}
	}
return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 24 marca 2021 przez tangarr Mędrzec (154,860 p.)
edycja 24 marca 2021 przez tangarr

1. Zamiast czytać całą linię wczytaj wartość liczby bezpośrednio do zmiennej (tak samo jak ze strumienia std::cout std::cin)
2. Wczytane liczby zapisuj do tablicy lub dynamicznego kontenera (np std::vector)
3. Na koniec użyj funkcji std::sort do posortowania danych

komentarz 24 marca 2021 przez jan1 Nowicjusz (220 p.)
Za nowy w tym jestem, więc nie wiem czy się połapie. Wiesz może gdzie znajdę jakiś podobny program do przerobienia?
komentarz 24 marca 2021 przez tangarr Mędrzec (154,860 p.)

1. Wczytywanie liczby ze strumienia (niezależnie czy tym strumieniem jest konsola czy plik)
 

int liczba;
std::cin >> liczba;
// dodatkowo można sprawdzić czy udało się wczytać liczbę
if (std::cin.fail()) {
    // nie udało się wczytać liczby
    exit(1);
}

2. Obsługa wektora

#include <vector>

//dalej w programie
std::vector<int> wektor;
wektor.push_back(1);
wektor.push_back(2);

std::cout << "Rozmiar wektora: " << wektor.size() << std::endl;
std::cout << "Zawartość wektora: ";
for (const auto & element : wektor) {
    std::cout << element << " ";
}
std::cout << std::endl;

3. Sortowanie
https://en.cppreference.com/w/cpp/algorithm/sort

Szczerze polecam poczytać opisy klas i funkcji na stronie cppreference.

komentarz 24 marca 2021 przez jan1 Nowicjusz (220 p.)
Dzięki za pomoc, chociaż przy for (const auto & element : wektor) wyskakuje błąd i nie za bardzo wiem co z tym zrobić i jeszcze pytanie czy po wczytaniu ze strumienia wyświetlą się liczby?
1
komentarz 24 marca 2021 przez tangarr Mędrzec (154,860 p.)

Jeżeli taka konstrukcja pętli ci nie działa to znaczy, że używasz starszego standardu C++. Możesz użyć klasycznej pętli

for (int i=0; i<wektor.size(); i++) {
    int element = wektor[i];
}

Jednak szczerze polecam użyć nowszego kompilatora.

Wczytywanie liczby ze strumienia nie ma żadnego związku z wyświetlaniem tej liczby.

Podobne pytania

0 głosów
1 odpowiedź 822 wizyt
pytanie zadane 27 lutego 2019 w Java przez mswol Nowicjusz (120 p.)
0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 27 lutego 2019 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 1,317 wizyt
pytanie zadane 1 stycznia 2019 w C i C++ przez nooblike Nowicjusz (120 p.)

92,568 zapytań

141,420 odpowiedzi

319,620 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...