Cześć,
Robię zadania z książki i dotarłem do ćwiczenia gdzie muszę odczytać dane z pliku tekstowego. Wszystko ładnie i pięknie, ale kiedy próbuję coś odczytać, to pokazuje błędne wyniki. Wiem, że na pewno w złym miejscu są odczytywane dane i zastanawiam się czy program nie próbuje wkładać liczb do łańcuchów i na odwrót. Da się jakoś ustawić od którego wiersza odczytywane będą dane z pliku? Pozdro!
#include <iostream>
#include <fstream>
struct Dane
{
std::string nazwisko[4];
double kwota[];
};
int main()
{
std::ifstream plik;
plik.open("C://Users/Sajmo/Desktop/eee.txt");
if (!plik.is_open())
{
std::cout << "Otwarcie pliku nie powiodlo sie.\n";
exit(EXIT_FAILURE);
}
std::cout << "Towarzystwo na Rzecz Zachowania Dobrych Wplywow\n";
int iPayer;
plik >> iPayer;
Dane * zmienna = new Dane[iPayer];
do
{
for (int i = 0; i < iPayer; i++)
{
getline(plik, zmienna->nazwisko[i]);
plik >> zmienna->kwota[i];
}
std::cout << "\tNasi Wspaniali Sponsorzy\n\n";
for(int i = 0; i < iPayer; i++)
{
if (zmienna->kwota[i] > 10000)
std::cout << zmienna->nazwisko[i] << " wplacil " << zmienna->kwota[i] << "zl" << std::endl;
}
std::cout << "\n\n";
std::cout << "\tNasi Sponsorzy \n\n";
for (int i = 0; i < iPayer; i++)
{
if (zmienna->kwota[i] < 10000)
std::cout << zmienna->nazwisko[i] << " wplacil " << zmienna->kwota[i] << "zl" << std::endl;
}
}while(plik.eof());
delete [] zmienna;
plik.close();
return 0;
}
Zawartość pliku.txt:
4
Sam Stone
2000
Freida Flass
100500
Tammy Tubbs
5000
Rich Raptor
55000