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

c++ probllem z zadnaiem klasy,pliki

Object Storage Arubacloud
0 głosów
277 wizyt
pytanie zadane 18 listopada 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)
Zadanie: Masz plik o nazwie people.txt 
Kazda linia pliku ma format: 
<imie> <nazwisko> <wiek> 
Np. 
Jan Kowalski 21 
Program ma odczytać dane z pliku i odfiltrować osoby pelnoletnie po czym zapisac je w pliku adults.txt
Plik adults.txt ma mieć taki sam format linii jak plik people.txt
Użyj <fstream> z biblioteki standardowe

to jest tresc zadania

to  jest moj kod: 

#include <iostream>
#include <fstream>

class Person
{
private:
    std::string name;
    std::string surname;
    int age;

public:
    Person(const std::string &name, const std::string &surname, int age)
    {
        this->name = name;
        this->surname = surname;
        this->age = age;
    }
    std::string getName() const
    {
        return name;
    }
    std::string getSurname() const
    {
        return surname;
    }
    bool isAdult()
    {
        return age >= 18;
    }
};
void readPersonFromFile()
{
}
void writePersonToFile()
{
    std::ifstream file("adult");
}
Person readPersonFromFile()
{
    int age;
    std::ifstream File;
    File.open("adult");
}
void read_file()
{
    // std::ofstream  file;
    // file.open("people.txt");
    // file.close();
    std::string line;
    std::ifstream file("people");
    if (file.is_open())
    {
        while (getline(file, line))
        {
            Person person = readPersonFromFile(line);
            if (person.isAdult())
            {
                writePersonToFile(person);
            }
        }
        file.close();
    }
    else
    {
        std::cout << "Unable to open file";
    }
}

int main()
{
    read_file();
}

Zatrzymałem sie i nie  wiem co dalej  zrobic .. jaka funkcje napisac to co jest w whileu ma zostac :0

komentarz 18 listopada 2020 przez tangarr Mędrzec (154,860 p.)
Która część kodu jest napisana przez ciebie a która została narzucona?
Co w tym kodzie rozumiesz a czego nie?
komentarz 18 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
wszystko   zostalo napisane przezemnie
komentarz 18 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
narzucony  zostal  while
komentarz 18 listopada 2020 przez tangarr Mędrzec (154,860 p.)

Ten kod nie pasuje do reszty:

void readPersonFromFile()
{
}
void writePersonToFile()
{
    std::ifstream file("adult");
}
Person readPersonFromFile()
{
    int age;
    std::ifstream File;
    File.open("adult");
}

Wyjaśnij mi dlaczego te funkcje mają taką postać (i dlaczego masz dwie kolizujące ze sobą funkcje readPersonFromFile)?

komentarz 18 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
bo nie wiem co gdzie zrobic juz :/ funkcje void juz wywyalilem
komentarz 18 listopada 2020 przez tangarr Mędrzec (154,860 p.)

Rozbijmy problem na mniejsze.
Dlaczego napisałeś tą funkcję?

Person readPersonFromFile()

 

komentarz 18 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
Person persoon = readPersonFromFile(line);

przez to myslac co zostlao mi narzucone 

1
komentarz 18 listopada 2020 przez tangarr Mędrzec (154,860 p.)
Typ zwracany przez funkcję się zgadza, nazwa też, ale co z argumentami funkcji?
komentarz 19 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
nie wiem co tu dac? nww std::string readLine
1
komentarz 19 listopada 2020 przez tangarr Mędrzec (154,860 p.)

Funkcja readPersonFromFile musi mieć taką postać, żeby można ją było wywołać w taki sposób

std::string line;
Person person = readPersonFromFile(line);

 

komentarz 19 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
dobra zmienilem, ale funkcjonalnos pogramu i tak to nie to..
komentarz 19 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
Person createPersonFromFileData (..) a tutaj w argumencie co dac
komentarz 19 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
łatwiejj bylo by ptzejsjc na kominikator online chyba nie?
komentarz 19 listopada 2020 przez tangarr Mędrzec (154,860 p.)

Zgubiłem się.
Rozmawialiśmy o tym jak powinna wyglądać sygnatura funkcji readPersonFromFile a tu nagle wyskakujesz z funkcją createPersonFromFileData.
W tej sytuacji idę spać.

Zastanów się nad tym kodem:

int liczbaA = 6;
int liczbaB = 10;
int wynik = suma(liczbaA, liczbaB);

Jaką postać ma funkcja suma? Jakiego typu jest zwracany wyniki i jakiego typu są argumenty tej funkcji.

komentarz 19 listopada 2020 przez Eriss69 Gaduła (4,470 p.)
przypadkiem wyslalem co innego.. zwacany jest typ int,,argumenty tez int
komentarz 19 listopada 2020 przez tangarr Mędrzec (154,860 p.)

Dobrze.
A teraz taka funkcja

std::string line;
Person person = readPersonFromFile(line);

Jakiego typu jest zwracany wyniki i jakiego typu są argumenty tej funkcji?

komentarz 19 listopada 2020 przez j23 Mędrzec (194,920 p.)
Czy mi się wydaje, czy ten kod jest przekombinowany?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 352 wizyt
pytanie zadane 1 stycznia 2023 w C i C++ przez benny13 Obywatel (1,150 p.)
0 głosów
1 odpowiedź 302 wizyt
pytanie zadane 18 stycznia 2022 w C i C++ przez Fluxik Nowicjusz (240 p.)
0 głosów
1 odpowiedź 316 wizyt
pytanie zadane 19 października 2021 w C i C++ przez Vifuso Nowicjusz (170 p.)

92,631 zapytań

141,495 odpowiedzi

319,863 komentarzy

62,011 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!

...