#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>
int main()
{
std::fstream file("my_file.txt");
std::vector<double> vec(std::istream_iterator<double> (file), {});
std::cout << *std::max_element(vec.begin(), vec.end()) << std::endl;
system("pause");
return 0;
}
my_file.txt
9022
1
39
20
12901
1089
Mam tu program w C++ do odczytywania z pliku z pliku największej liczby. Tylko ja chciałbym dodać funkcjonalność, żeby do pliku była możliwość dopisywania kolejnych liczb i żeby te dopisywane liczby zachowywały się w pliku na zawsze nie ważne ile razy będę uruchamiał aplikację. Jak to zrobić? Próbowałem wiele razy, ale zawsze kończyło się jakimiś błędami związanymi z tym, że istream_iterator źle odczytywał z pliku i nie przekazywał danych do vectora.
Oto moja próba:
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>
int main()
{
std::fstream file("my_file.txt", std::ios::app);
file << 39 << std::endl;
file << 89 << std::endl;
file << 190 << std::endl;
std::vector<double> vec(std::istream_iterator<double> (file), {});
std::cout << *std::max_element(vec.begin(), vec.end()) << std::endl;
system("pause");
return 0;
}
Wywala wyjątek: vector iterator not deferancable