<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Przyszły Programista - C++</title>
<link>http://forum.przyszlyprogramista.pl/?qa=questions/c-plus-plus</link>
<description>Powered by Question2Answer</description>
<item>
<title>Aplikacja Budżetowa obiektowo</title>
<link>http://forum.przyszlyprogramista.pl/?qa=2068/aplikacja-bud%C5%BCetowa-obiektowo</link>
<description>&lt;p&gt;Hej, proszę o pomoc w namierzeniu błędu dotyczącym problemu z zapisywaniem kwot po kropce (do xml nie zapisuje niczego po kropce/przecinku)&amp;nbsp;funkcja stod nie zdaje egzaminu, a debuger mówi, że problem leży w wejściu właśnie do stod i zaprowadza mnie do biblioteki Markup załączonej z maila, kod niżej.&amp;nbsp;&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
void BudgetManager::addTransaction(Type type) {
    char choice;
    string date, description, amountStr;
    double amount;


    cout &amp;lt;&amp;lt; &quot;Does it concern today's date? (y/n): &quot;;
    cin &amp;gt;&amp;gt; choice;

    if (choice == 'y' || choice == 'Y') {
        date = DateMethods::getCurrentDateAsString();
    } else {
        cout &amp;lt;&amp;lt; &quot;Enter the date (YYYY-MM-DD): &quot;;
        cin &amp;gt;&amp;gt; date;
        while (!DateMethods::validateDate(date)) {
            cout &amp;lt;&amp;lt; &quot;Invalid date. Try again (YYYY-MM-DD): &quot;;
            cin &amp;gt;&amp;gt; date;
        }
    }

    cout &amp;lt;&amp;lt; &quot;Enter a description: &quot;;
    cin.ignore();
    getline(cin, description);

    cout &amp;lt;&amp;lt; &quot;Enter the amount: &quot;;
    getline(cin, amountStr);

     replace(amountStr.begin(), amountStr.end(), ',', '.');


  try {

        amount = stod(amountStr);
    } catch (const invalid_argument&amp;amp;) {
        cout &amp;lt;&amp;lt; &quot;Invalid amount. Please enter a numeric value.\n&quot;;
        return;
    } catch (const out_of_range&amp;amp;) {
        cout &amp;lt;&amp;lt; &quot;Amount is out of range. Please enter a valid number.\n&quot;;
        return;
    }

    Operation newOperation;
    newOperation.userId = LOGGED_USER_ID;
    newOperation.date = DateMethods::convertStringDateToInt(date);
    newOperation.item = description;
    newOperation.amount = amount;

        if (type == INCOME) {
        newOperation.id = incomes.size() + 1;
        incomes.push_back(newOperation);
        incomeFile.addOperationToFile(newOperation);
        cout &amp;lt;&amp;lt; &quot;Income added successfully.\n&quot;;
    } else {
        newOperation.id = expenses.size() + 1;
        expenses.push_back(newOperation);
        expenseFile.addOperationToFile(newOperation);
        cout &amp;lt;&amp;lt; &quot;Expense added successfully.\n&quot;;
    }
    system(&quot;pause&quot;);
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=2068/aplikacja-bud%C5%BCetowa-obiektowo</guid>
<pubDate>Sun, 05 Jan 2025 18:35:46 +0000</pubDate>
</item>
<item>
<title>Książka adresowa obiektowo -error: expected class-name before</title>
<link>http://forum.przyszlyprogramista.pl/?qa=2006/ksi%C4%85%C5%BCka-adresowa-obiektowo-error-expected-class-name-before</link>
<description>&lt;p&gt;Cześć.&lt;/p&gt;

&lt;p&gt;Jestem na etapie tworzenia książki adresowej obiektowo i utknęłam z takim błędem w&amp;nbsp;klasie PlikZUzytkownikami:&lt;/p&gt;

&lt;p&gt;|19|error: expected class-name before '{' token| . Tak jakby kompilator w ogóle nie odczytywał tej jednej klasy.&amp;nbsp;&amp;nbsp;Może ktoś miał podobny problem i chciałby mi pomóc? Z góry dzięki, Natalia&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef PLIKZUZYTKOWNIKAMI_H
#define PLIKZUZYTKOWNIKAMI_H

#include &quot;Uzytkownicy.h&quot;
#include &quot;PlikTekstowy.h&quot;
#include &quot;MetodyPomocnicze.h&quot;


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;cstdlib&amp;gt;



using namespace std;

class PlikZUzytkownikami : public PlikTekstowy
{
    const string NAZWA_PLIKU_Z_UZYTKOWNIKAMI;
    string zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(Uzytkownik uzytkownik);
    Uzytkownik pobierzDaneUzytkownika(string daneJednegoUzytkownikaOddzielonePionowymiKreskami);

 public:
    PlikZUzytkownikami(string nazwaPlikuZUzytkownikami) : PlikTekstowy(nazwaPlikuZUzytkownikami), NAZWA_PLIKU_Z_UZYTKOWNIKAMI(nazwaPlikuZUzytkownikami){};

    void dopiszUzytkownikaDoPliku(Uzytkownik uzytkownik);
    vector &amp;lt;Uzytkownik&amp;gt;  wczytajUzytkownikowZPliku();
    void zapiszWszytskichUzytkownikowDoPliku(vector &amp;lt;Uzytkownik&amp;gt; uzytkownicy);


};

#endif
&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=2006/ksi%C4%85%C5%BCka-adresowa-obiektowo-error-expected-class-name-before</guid>
<pubDate>Mon, 08 Jul 2024 19:17:48 +0000</pubDate>
</item>
<item>
<title>SPOJ - Lamacz GG</title>
<link>http://forum.przyszlyprogramista.pl/?qa=2001/spoj-lamacz-gg</link>
<description>Hej,&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Proszę o pomoc z programem łamacz GG. Niestety nie działa mi dziś IDEONE (nie wiem dlaczego) i mam problem z odnalezieniem błędu. Generalnie program działa i zwraca takie wartości jakie trzeba.&lt;br /&gt;
&lt;br /&gt;
Kod programu:&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;unordered_map&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
string odszyfruj(const string&amp;amp; zaszyfrowany) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unordered_map&amp;lt;string, char&amp;gt; translation = {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;quot;BG&amp;quot;, 'a'}, {&amp;quot;CG&amp;quot;, 'b'}, {&amp;quot;DG&amp;quot;, 'c'}, {&amp;quot;EG&amp;quot;, 'd'}, {&amp;quot;FG&amp;quot;, 'e'}, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;quot;GG&amp;quot;, 'f'}, {&amp;quot;HG&amp;quot;, 'g'}, {&amp;quot;IG&amp;quot;, 'h'}, {&amp;quot;JG&amp;quot;, 'i'}, {&amp;quot;KG&amp;quot;, 'j'}, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;quot;LG&amp;quot;, 'k'}, {&amp;quot;PG&amp;quot;, 'o'}, {&amp;quot;CH&amp;quot;, 'r'}, {&amp;quot;DH&amp;quot;, 's'}, {&amp;quot;EH&amp;quot;, 't'}, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;quot;HH&amp;quot;, 'x'}, {&amp;quot;KH&amp;quot;, 'z'}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string odszyfrowany;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (size_t i = 0; i &amp;lt; zaszyfrowany.length(); i += 2) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string pair = zaszyfrowany.substr(i, 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;odszyfrowany += translation[pair];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return odszyfrowany;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string odszyfrowany;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (getline(cin, odszyfrowany)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (odszyfrowany.size() == 20) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; odszyfruj(odszyfrowany) &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=2001/spoj-lamacz-gg</guid>
<pubDate>Mon, 01 Jul 2024 19:52:46 +0000</pubDate>
</item>
<item>
<title>SPOJ PTROL-ROL</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1993/spoj-ptrol-rol</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tak jak w temacie - problem dotyczy programu na SPOJu.&lt;br /&gt;
&lt;br /&gt;
Poniżej wklejam kod programu a problem jest następujący - na wyjściu program jako element 0 tablicy traktuje to co wyświetla na konsoli a nie to co jest na wejściu.&lt;br /&gt;
&lt;br /&gt;
Czyli:&lt;br /&gt;
&lt;br /&gt;
wejście: 1 2 3 4 5 6 7&lt;br /&gt;
&lt;br /&gt;
wyjście: 2 3 4 5 6 7 2 (a powinno być 2 3 4 5 6 7 1)&lt;br /&gt;
&lt;br /&gt;
Proszę o podpowiedz co moze byc nie tak :) &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void wczytajLiczbyDoTablicy(int tablica[], int rozmiar)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;for (int i=0; i&amp;lt;rozmiar; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; tablica[i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void przesunElementyTablicy(int tablica[], int rozmiar)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; rozmiar; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tablica[i] = tablica[i+1];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;tablica[rozmiar-1] = tablica[0];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void wypiszElementyTablicy(int tablica[], int rozmiar)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;for (int i = 0; i&amp;lt;rozmiar; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; tablica[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;br /&gt;
}&lt;br /&gt;
int main() {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int iloscElementow, iloscTestow;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;int *tablica;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; iloscTestow;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;for (int i=0; i&amp;lt;iloscTestow; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; iloscElementow;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tablica = new int[iloscElementow];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wczytajLiczbyDoTablicy(tablica, iloscElementow);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;przesunElementyTablicy(tablica, iloscElementow);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wypiszElementyTablicy(tablica, iloscElementow);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delete [] tablica;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
return 0;&lt;br /&gt;
&lt;br /&gt;
}</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1993/spoj-ptrol-rol</guid>
<pubDate>Wed, 05 Jun 2024 12:01:26 +0000</pubDate>
</item>
<item>
<title>id użytkowników w pliku xml</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1987/id-u%C5%BCytkownik%C3%B3w-w-pliku-xml</link>
<description>&lt;p&gt;Hej,&lt;/p&gt;

&lt;p&gt;Mam taki problem z aplikacją budżetową, że kiedy zarejestruję użytkownika i uruchomię program od nowa, to nie mogę się już nim zalogować, bo nie znajduje tego loginu i w pliku liczy od nowa od 1. Tak jest za każdym razem. Dopóki nie zresetuję programu, to wszystko jest ok. Czemu tak się dzieje, skoro dodaję każdego użytkownika do tego samego wektora users? Tutaj dodam jeszcze fragmenty kodu:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef USERMANAGER_H
#define USERMANAGER_H

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &quot;userFile.h&quot;
#include &quot;user.h&quot;
#include &quot;auxiliaryMethod.h&quot;

using namespace std;

class UserManager
{
    int loggedUserId;
    UserFile userFile;
    vector &amp;lt;User&amp;gt; users;

    User enterUserData();

public:
    UserManager(string userFileName) : userFile(userFileName) {
        loggedUserId = 0;
        users = userFile.loadUsersFromFile();
    }
    void registerUser();
    void loginUser();
    void changeUserPassword();
    void logoutUser();
    bool isUserLoggedIn();
    int getLoggedUserId();
    bool checkIfLoginExists(const string &amp;amp;login);
    int increaseUserIdAfterRegisterUser();
};

#endif&lt;/pre&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
User UserManager::enterUserData()
{
    User person;
    string firstPassword = &quot;&quot;, secondPassword = &quot;&quot;;

    cout &amp;lt;&amp;lt; &quot;Enter name: &quot; &amp;lt;&amp;lt; endl;
    person.name = AuxiliaryMethod::enterLine();
    if(!AuxiliaryMethod::validateInput(person.name)){
        cout &amp;lt;&amp;lt; &quot;Incorrect name. Try again&quot; &amp;lt;&amp;lt; endl;
        system(&quot;pause&quot;);
    }
    cout &amp;lt;&amp;lt; &quot;Enter surname: &quot; &amp;lt;&amp;lt; endl;
    person.surname = AuxiliaryMethod::enterLine();
    if(!AuxiliaryMethod::validateInput(person.surname)){
        cout &amp;lt;&amp;lt; &quot;Incorrect surname. Try again&quot; &amp;lt;&amp;lt; endl;
        system(&quot;pause&quot;);
    }
    while (true) {
        cout &amp;lt;&amp;lt; &quot;Enter login: &quot; &amp;lt;&amp;lt; endl;
        person.login = AuxiliaryMethod::enterLine();
        if (checkIfLoginExists(person.login)) {
            cout &amp;lt;&amp;lt; &quot;This login already exists. Please choose another one.&quot; &amp;lt;&amp;lt; endl;
        } else {
            break;
        }
    }
    while(1){
        cout &amp;lt;&amp;lt; &quot;Enter password: &quot; &amp;lt;&amp;lt; endl;
        firstPassword = AuxiliaryMethod::enterLine();
        cout &amp;lt;&amp;lt; &quot;Repeat password: &quot; &amp;lt;&amp;lt; endl;
        secondPassword = AuxiliaryMethod::enterLine();
        if(firstPassword == secondPassword){
            person.password = secondPassword;
            break;
        }
        else{
            cout &amp;lt;&amp;lt; &quot;Entered passwords are differ. Try again&quot; &amp;lt;&amp;lt; endl;
        }
    }
    return person;
}
void UserManager::registerUser()
{
    system (&quot;cls&quot;);
    User user = enterUserData();
    userFile.addUserToFile(user);
    users.push_back(user);
}&lt;/pre&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef USERFILE_H
#define USERFILE_H

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &quot;Markup.h&quot;
#include &quot;File.h&quot;
#include &quot;user.h&quot;
using namespace std;

class UserFile :public File
{
    CMarkup xml;
public:
    UserFile (string userFileName) : File(userFileName){}
    vector &amp;lt;User&amp;gt; loadUsersFromFile();
    bool addUserToFile (User &amp;amp;user);
    bool changePasswordInFile(int id, const string &amp;amp;password);
};

#endif&lt;/pre&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;userFile.h&quot;

vector &amp;lt;User&amp;gt; UserFile::loadUsersFromFile()
{
    vector &amp;lt;User&amp;gt; users;
    if(!xml.Load(getFileName())){
        cout &amp;lt;&amp;lt; &quot;File doesn't exist&quot; &amp;lt;&amp;lt; endl;
        return users;
    }
    else{
        User user;
        xml.ResetPos();
        xml.FindElem();
        xml.IntoElem();
        xml.FindElem();
        do{
            xml.IntoElem();

            xml.FindElem(&quot;id&quot;);
            user.id = stoi(xml.GetData());

            xml.FindElem(&quot;name&quot;);
            user.name = xml.GetData();

            xml.FindElem(&quot;surname&quot;);
            user.surname = xml.GetData();

            xml.FindElem(&quot;login&quot;);
            user.login = xml.GetData();

            xml.FindElem(&quot;password&quot;);
            user.password = xml.GetData();

            xml.OutOfElem();
        } while(xml.FindElem());
        users.push_back(user);
    }
    return users;
}
bool UserFile::addUserToFile (User &amp;amp;user)
{
    user.id = getLastId() + 1;
    if(!xml.Load(getFileName())){
        xml.SetDoc(&quot;&amp;lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;UTF-8\&quot;?&amp;gt;\r\n&quot;);
        xml.AddElem(&quot;Root&quot;);
    }
    xml.ResetPos();
    xml.FindElem(&quot;Root&quot;);
    xml.IntoElem();
    xml.AddElem(&quot;User&quot;);
    xml.IntoElem();
    xml.AddElem(&quot;id&quot;, to_string(user.id));
    xml.AddElem(&quot;name&quot;, user.name);
    xml.AddElem(&quot;surname&quot;, user.surname);
    xml.AddElem(&quot;login&quot;, user.login);
    xml.AddElem(&quot;password&quot;, user.password);

    if (!xml.Save(getFileName())){
        cerr &amp;lt;&amp;lt; &quot;Error: Unable to save the XML file&quot; &amp;lt;&amp;lt; endl;
        return false;
    }
    xml.Save(getFileName());
    lastId = user.id;
    xml.OutOfElem();
    cout &amp;lt;&amp;lt; &quot;User has been added successfully&quot; &amp;lt;&amp;lt; endl;
    system(&quot;pause&quot;);
    return true;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1987/id-u%C5%BCytkownik%C3%B3w-w-pliku-xml</guid>
<pubDate>Fri, 31 May 2024 17:56:04 +0000</pubDate>
</item>
<item>
<title>C++ SPOJ Glutton - Obżartuchy</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1984/c-spoj-glutton-ob%C5%BCartuchy</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
Po przerobieniu materiału od Pana Mirosława Zelenta sugeruje on wykonanie programu Glutton - obżartuchy.&lt;br /&gt;
&lt;br /&gt;
Program mam gotowy i wynik tez jest dobry, natomiast SPOJ go nie przepuszcza.&lt;br /&gt;
&lt;br /&gt;
Mógłbym prosić o podpowiedz co może byc nie tak :&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int zestawy, gluttons, czas, czasLaczny, result;&lt;br /&gt;
int boxSize;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; zestawy;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;for (int i=0; i &amp;lt; zestawy; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;czasLaczny = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; gluttons &amp;gt;&amp;gt; boxSize;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;for (int j=0; j &amp;lt; gluttons; j++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; czas;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;czasLaczny += 86400/czas;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;if(czasLaczny % boxSize == 0) result = czasLaczny / boxSize;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else result = (czasLaczny/boxSize) + 1;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; result;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1984/c-spoj-glutton-ob%C5%BCartuchy</guid>
<pubDate>Mon, 27 May 2024 12:40:12 +0000</pubDate>
</item>
<item>
<title>Książka adresowa obiektowo - brak zapisanych zmian w pliku</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1972/ksi%C4%85%C5%BCka-adresowa-obiektowo-brak-zapisanych-zmian-w-pliku</link>
<description>&lt;p&gt;Hej. Piszę funkcję zmiany hasła, jednak poza konsolą zmiany nie zapisują się w pliku.&amp;nbsp;&lt;br&gt;
Pomyślałam, że wywołam funkcję&amp;nbsp;zapiszWszystkichUzytkownikowDoPliku w main po wywołaniu funkcji zmiany hasła.&amp;nbsp;&lt;br&gt;
Zadeklarowałam funkcję&amp;nbsp;zapiszWszystkichUzytkownikowDoPliku zarówno w klasie KsiazkaAdresowa,&amp;nbsp;PlikZUzytkownikami i UzytkownikManager.&amp;nbsp;&lt;br&gt;
Czuję, że coś za mocno kombinuję i byłabym wdzięczna za podpowiedź o co chodzi z poprawnym zapisaniem do pliku nowego hasła.&lt;br&gt;
Tu main: (w moim pliku już są użytkownicy zarejestrowani więc pominęłam tu wywołanie)&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

#include &quot;KsiazkaAdresowa.h&quot;

using namespace std;

int main()
{
    KsiazkaAdresowa ksiazkaAdresowa(&quot;Uzytkownicy2.txt&quot;);

    ksiazkaAdresowa.logowanieUzytkownika();
    ksiazkaAdresowa.zmianaHaslaZalogowanegoUzytkownika();
    ksiazkaAdresowa.zapiszWszystkichUzytkownikowDoPliku();

    return 0;
}

&lt;/pre&gt;

&lt;p&gt;Tu nagłówkowy KsiazkaAdresowa&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef KSIAZKAADRESOWA_H
#define KSIAZKAADRESOWA_H

#include &amp;lt;iostream&amp;gt;

#include &quot;UzytkownikManager.h&quot;
#include &quot;AdresatManager.h&quot;


using namespace std;

class KsiazkaAdresowa
{
    UzytkownikManager uzytkownikManager;
public:
    KsiazkaAdresowa(string nazwaPlikuZUzytkownikami) : uzytkownikManager(nazwaPlikuZUzytkownikami)
    {
        uzytkownikManager.wczytajUzytkownikowZPliku();
    };

    void rejestracjaUzytkownika();
    void wypiszWszystkichUzytkownikow();
    void wczytajUzytkownikowZPliku ();
    void logowanieUzytkownika();
    int pobierzIdZalogowanegoUzytkownika();
    void zmianaHaslaZalogowanegoUzytkownika();
    void zapiszWszystkichUzytkownikowDoPliku(vector &amp;lt;Uzytkownik&amp;gt; &amp;amp;uzytkownicy);

};

#endif
&lt;/pre&gt;

&lt;p&gt;Tu KsiazkaAdresowa.cpp&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;KsiazkaAdresowa.h&quot;
#include &quot;PlikZUzytkownikami.h&quot;

void KsiazkaAdresowa::rejestracjaUzytkownika()
{
    uzytkownikManager.rejestracjaUzytkownika();
}
void KsiazkaAdresowa::wypiszWszystkichUzytkownikow()
{
    uzytkownikManager.wypiszWszystkichUzytkownikow();
}
void KsiazkaAdresowa::logowanieUzytkownika()
{
    uzytkownikManager.logowanieUzytkownika();
}
int KsiazkaAdresowa::pobierzIdZalogowanegoUzytkownika()
{
    return uzytkownikManager.pobierzIdZalogowanegoUzytkownika();
}
void KsiazkaAdresowa::zmianaHaslaZalogowanegoUzytkownika()
{
    int idZalogowanegoUzytkownika = pobierzIdZalogowanegoUzytkownika();
    uzytkownikManager.zmianaHaslaZalogowanegoUzytkownika(idZalogowanegoUzytkownika);
}
void KsiazkaAdresowa::zapiszWszystkichUzytkownikowDoPliku(vector &amp;lt;Uzytkownik&amp;gt; &amp;amp;uzytkownicy)
{
     uzytkownikManager.zapiszWszystkichUzytkownikowDoPliku();
}
&lt;/pre&gt;

&lt;p&gt;PlikZUzytkownikami&lt;/p&gt;

&lt;pre class=&quot;brush:plain;&quot;&gt;
#ifndef PLIKZUZYTKOWNIKAMI_H
#define PLIKZUZYTKOWNIKAMI_H

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;cstdlib&amp;gt;

#include &quot;Uzytkownik.h&quot;
#include &quot;MetodyPomocnicze.h&quot;

using namespace std;

class PlikZUzytkownikami
{
    const string nazwaPlikuZUzytkownikami;
    fstream plikTekstowy;

    bool czyPlikJestPusty();
    string zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(Uzytkownik uzytkownik);
    Uzytkownik pobierzDaneUzytkownika(string daneJednegoUzytkownikaOddzielonePionowymiKreskami);

public:
    PlikZUzytkownikami(string NAZWAPLIKUZUZYTKOWNIKAMI) : nazwaPlikuZUzytkownikami (NAZWAPLIKUZUZYTKOWNIKAMI){};
    void dopiszUzytkownikaDoPliku(Uzytkownik uzytkownik);
    vector &amp;lt;Uzytkownik&amp;gt; wczytajUzytkownikowZPliku();
   void zapiszWszystkichUzytkownikowDoPliku(vector&amp;lt;Uzytkownik&amp;gt; &amp;amp;uzytkownicy);

};

#endif
&lt;/pre&gt;

&lt;p&gt;.cpp&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:plain;&quot;&gt;
#include &quot;PlikZUzytkownikami.h&quot;

void PlikZUzytkownikami::dopiszUzytkownikaDoPliku(Uzytkownik uzytkownik)
{
    string liniaZDanymiUzytkownika = &quot;&quot;;
    plikTekstowy.open(nazwaPlikuZUzytkownikami.c_str(), ios::app);

    if (plikTekstowy.good() == true)
    {
        liniaZDanymiUzytkownika = zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(uzytkownik);

        if (czyPlikJestPusty() == true)
        {
            plikTekstowy &amp;lt;&amp;lt; liniaZDanymiUzytkownika;
        }
        else
        {
            plikTekstowy &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; liniaZDanymiUzytkownika ;
        }
    }
    else
        cout &amp;lt;&amp;lt; &quot;Nie udalo sie otworzyc pliku &quot; &amp;lt;&amp;lt; nazwaPlikuZUzytkownikami &amp;lt;&amp;lt; &quot; i zapisac w nim danych.&quot; &amp;lt;&amp;lt; endl;
    plikTekstowy.close();
}

bool PlikZUzytkownikami::czyPlikJestPusty()
{
    plikTekstowy.seekg(0, ios::end);
    if (plikTekstowy.tellg() == 0)
        return true;
    else
        return false;
}
string PlikZUzytkownikami::zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(Uzytkownik uzytkownik)
{
    string liniaZDanymiUzytkownika = &quot;&quot;;

    liniaZDanymiUzytkownika += MetodyPomocnicze::konwerjsaIntNaString(uzytkownik.pobierzId())+ '|';
    liniaZDanymiUzytkownika += uzytkownik.pobierzLogin() + '|';
    liniaZDanymiUzytkownika += uzytkownik.pobierzHaslo() + '|';

    return liniaZDanymiUzytkownika;
}
vector &amp;lt;Uzytkownik&amp;gt; PlikZUzytkownikami::wczytajUzytkownikowZPliku()
{
    Uzytkownik uzytkownik;
    vector &amp;lt;Uzytkownik&amp;gt; uzytkownicy;
    string daneJednegoUzytkownikaOddzielonePionowymiKreskami = &quot;&quot;;

    plikTekstowy.open(nazwaPlikuZUzytkownikami.c_str(), ios::in);

    if (plikTekstowy.good() == true)
    {
        while (getline(plikTekstowy, daneJednegoUzytkownikaOddzielonePionowymiKreskami))
        {
            uzytkownik = pobierzDaneUzytkownika(daneJednegoUzytkownikaOddzielonePionowymiKreskami);
            uzytkownicy.push_back(uzytkownik);
        }
        plikTekstowy.close();
    }
    return uzytkownicy;

}
Uzytkownik PlikZUzytkownikami::pobierzDaneUzytkownika(string daneJednegoUzytkownikaOddzielonePionowymiKreskami)
{
    Uzytkownik uzytkownik;
    string pojedynczaDanaUzytkownika = &quot;&quot;;
    int numerPojedynczejDanejUzytkownika = 1;

    for (int pozycjaZnaku = 0; pozycjaZnaku &amp;lt; daneJednegoUzytkownikaOddzielonePionowymiKreskami.length(); pozycjaZnaku++)
    {
        if (daneJednegoUzytkownikaOddzielonePionowymiKreskami[pozycjaZnaku] != '|')
        {
            pojedynczaDanaUzytkownika += daneJednegoUzytkownikaOddzielonePionowymiKreskami[pozycjaZnaku];
        }
        else
        {
            switch(numerPojedynczejDanejUzytkownika)
            {
            case 1:
                uzytkownik.ustawId(atoi(pojedynczaDanaUzytkownika.c_str()));
                break;
            case 2:
                uzytkownik.ustawLogin(pojedynczaDanaUzytkownika);
                break;
            case 3:
                uzytkownik.ustawHaslo(pojedynczaDanaUzytkownika);
                break;
            }
            pojedynczaDanaUzytkownika = &quot;&quot;;
            numerPojedynczejDanejUzytkownika++;
        }
    }
    return uzytkownik;
}
void PlikZUzytkownikami::zapiszWszystkichUzytkownikowDoPliku(vector&amp;lt;Uzytkownik&amp;gt; &amp;amp;uzytkownicy)
{
    fstream plikTekstowy;
    string liniaZDanymiUzytkownika = &quot;&quot;;

    plikTekstowy.open(nazwaPlikuZUzytkownikami.c_str(), ios::out);

    if (plikTekstowy.good())
    {
        for (const auto &amp;amp;uzytkownik : uzytkownicy)
        {
            liniaZDanymiUzytkownika = zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(uzytkownik);
            plikTekstowy &amp;lt;&amp;lt; liniaZDanymiUzytkownika &amp;lt;&amp;lt; endl;
        }
    }
    else
    {
        cout &amp;lt;&amp;lt; &quot;Nie mozna otworzyc pliku &quot; &amp;lt;&amp;lt; nazwaPlikuZUzytkownikami &amp;lt;&amp;lt; &quot; do zapisu.&quot; &amp;lt;&amp;lt; endl;
    }

    plikTekstowy.close();
}
&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1972/ksi%C4%85%C5%BCka-adresowa-obiektowo-brak-zapisanych-zmian-w-pliku</guid>
<pubDate>Mon, 13 May 2024 16:17:35 +0000</pubDate>
</item>
<item>
<title>Przeliczanie kursu walut - wyświetla wiele miejsc po przecinku</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1964/przeliczanie-kursu-walut-wy%C5%9Bwietla-wiele-miejsc-przecinku</link>
<description>&lt;p&gt;Cześć,&amp;nbsp;&lt;/p&gt;

&lt;p&gt;to mój pierwszy post wiec na wstępie witam&amp;nbsp; wszystkich serdecznie:)&lt;/p&gt;

&lt;p&gt;Mam problem przy programie z tytułu, mianowicie przy przeliczaniu kwoty z PLN n EUR program raz daje liczbę bez miejsc po przecinku a innym razem wkleja kwotę z kilkoma miejscami po przecinku. Ma ktoś pomysł jak to naprawić? Pierwsze co próbowałem z setprecision ale w żaden sposób nie udało mi się uzyskać jej działania w moim programie bo jeśli dobrze rozumiem można ta funkcja modyfikować tylko dane w strumieniach wejścia/wyjścia ?&lt;/p&gt;

&lt;p&gt;Chętnie usłyszę też rady co do całości kodu bo być może prze kombinowałem koncepcyjnie cały problem.&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;sstream&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;iomanip&amp;gt;

using namespace std;

string konwersjaDoubleNaString (double liczba);
string konwertujKwoteNaEuro (string &amp;amp;zdanie, int pozycjaPocz, int pozycjaKon, int i);
string zamienPLNnaEUR (string &amp;amp;zdanie);
string przeliczNaEuroPoKursie (string &amp;amp;zdanie);

int main()
{
    string zdanie;
    getline(cin,zdanie);
    cout&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;przeliczNaEuroPoKursie(zdanie);
    return 0;
}

string konwersjaDoubleNaString (double liczba)
{
    ostringstream ss;
    ss &amp;lt;&amp;lt; liczba;
    string str = ss.str();
    return str;
}

string konwertujKwoteNaEuro (string &amp;amp;zdanie, int pozycjaPocz, int pozycjaKon, int i)
{
    string kwotaTekst;
    const double EUR=4.12;
    double kwotaPLN=0.00,kwotaEUR=0.00;
    cout&amp;lt;&amp;lt;fixed&amp;lt;&amp;lt;setprecision(3);
    kwotaTekst=zdanie.substr(pozycjaPocz,(pozycjaKon-pozycjaPocz)+1);
    kwotaPLN=stof(kwotaTekst);
    kwotaEUR=kwotaPLN/EUR;
    zdanie.replace(pozycjaPocz,(pozycjaKon-pozycjaPocz)+1,konwersjaDoubleNaString(kwotaEUR));
    kwotaEUR=0;
    kwotaPLN=0;
    return zdanie;
}

string zamienPLNnaEUR (string &amp;amp;zdanie)
{
    for (int i=0; i&amp;lt;zdanie.length(); i++)
    {
        if (zdanie[i]=='P' &amp;amp;&amp;amp; zdanie[i+1]=='L' &amp;amp;&amp;amp; zdanie[i+2]=='N' )
        {
            zdanie.replace(i,3,&quot;EUR&quot;);
        }
    }
    return zdanie;
}

string przeliczNaEuroPoKursie (string &amp;amp;zdanie)
{
    int iloscPozycji=0,pozycjaPocz=0,pozycjaKon=0;
    for (int i=0; i&amp;lt;zdanie.length(); i++)
    {
        if (isdigit(zdanie[i])!=0 &amp;amp;&amp;amp; isdigit(zdanie[i-1])==0 &amp;amp;&amp;amp; isdigit(zdanie[i-2])==0 ) //wyszukiwanie poczatku liczby
        {
            pozycjaPocz = i;
        }
        if (isdigit(zdanie[i])!=0 &amp;amp;&amp;amp; isdigit(zdanie[i+1])==0 &amp;amp;&amp;amp; isdigit(zdanie[i+2])==0 ) //wyszukiwanie konca liczby
        {
            pozycjaKon = i;
        }

        if (pozycjaPocz!=0 &amp;amp;&amp;amp; pozycjaKon!=0)
        {
            konwertujKwoteNaEuro(zdanie,pozycjaPocz,pozycjaKon,i);
            i=pozycjaKon+10;
            pozycjaKon=0;
            pozycjaPocz=0;
        }
    }
    return zamienPLNnaEUR(zdanie);
}&lt;/pre&gt;

&lt;p&gt;Pozdrawiam&lt;/p&gt;

&lt;p&gt;Arek&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1964/przeliczanie-kursu-walut-wy%C5%9Bwietla-wiele-miejsc-przecinku</guid>
<pubDate>Tue, 07 May 2024 20:17:31 +0000</pubDate>
</item>
<item>
<title>Zadanie FLAMASTER - wersja odwrócona</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1944/zadanie-flamaster-wersja-odwr%C3%B3cona</link>
<description>Witajcie, proszę o pomoc z kodem. :) Próbowałam pisać ten kod zgodnie ze wskazówkami z zadania, ale wciąż &amp;nbsp;nie wiem dlaczego wyskakują mi takie dziwne wyniki i co robię nie tak?&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int konwersjaStringNaInt (string liczbaWyraz)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int liczba = stoi(liczbaWyraz);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return liczba;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
string odtworzWyraz(string skroconyWyraz)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string odtworzonyWyraz, powtarzajacySieZnak, liczbaWyraz;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int dlugosc = skroconyWyraz.length();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int pozycja = 0;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; dlugosc ; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (isdigit(skroconyWyraz[i])) // Jeśli znak jest cyfrą&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;powtarzajacySieZnak = skroconyWyraz [i-1];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (isdigit(skroconyWyraz[i+1]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;liczbaWyraz += skroconyWyraz [i+1];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pozycja ++ ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// petla while zakonczy dzialanie gdy trafi na litere&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int iloscPowtorzenZnaku = konwersjaStringNaInt(liczbaWyraz);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int j = 1; j &amp;lt; iloscPowtorzenZnaku; j++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;odtworzonyWyraz += powtarzajacySieZnak;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; powtarzajacySieZnak;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;liczbaWyraz = '0';&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return odtworzonyWyraz;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string skroconyWyraz;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &amp;quot;Podaj skrocony wyraz: &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; skroconyWyraz;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &amp;quot;Odtworzony wyraz: &amp;quot; &amp;lt;&amp;lt; odtworzWyraz(skroconyWyraz) &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam ciepło&lt;br /&gt;
&lt;br /&gt;
Paulina :)</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1944/zadanie-flamaster-wersja-odwr%C3%B3cona</guid>
<pubDate>Wed, 03 Apr 2024 18:12:05 +0000</pubDate>
</item>
<item>
<title>'PlikZAdresatami' does not name a type</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1933/plikzadresatami-does-not-name-a-type</link>
<description>&lt;p&gt;Hej,&lt;/p&gt;

&lt;p&gt;Mam taki błąd jak w tytule przy obiekcie PlikZAdresatami:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef ADRESATMENEDZER_H
#define ADRESATMENEDZER_H

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;fstream&amp;gt;

#include &quot;Adresat.h&quot;
#include &quot;Uzytkownik.h&quot;
#include &quot;PlikZAdresatami.h&quot;

using namespace std;

class AdresatMenedzer
{
    int idAdresata;
    int idZalogowanegoUzytkownika;
    int idOstatniegoAdresata;
    vector &amp;lt;Adresat&amp;gt; adresaci;
    vector &amp;lt;Uzytkownik&amp;gt; uzytkownicy;
    PlikZAdresatami plikZAdresatami;

    Adresat podajDaneNowegoAdresata(int idZalogowanegoUzytkownika, int idOstatniegoAdresata);

public:
    AdresatMenedzer(string nazwaPlikuZAdresatami) : plikZAdresatami(nazwaPlikuZAdresatami) {};
    void ustawIdZalogowanegoUzytkownika(int noweIdZalogowanegoUzytkownika);
    void ustawIdOstatniegoAdresata(int noweIdOstatniegoAdresata);
    int pobierzIdOstatniegoAdresata();
    int dodajAdresata();
    Adresat pobierzDaneAdresata(string daneAdresataOddzielonePionowymiKreskami);
    int pobierzIdAdresataZDanychOddzielonychPionowymiKreskami(string daneJednegoAdresataOddzielonePionowymiKreskami);
    void wyswietlWszystkichAdresatow();
    void wyswietlDaneAdresata(Adresat adresat);
};

#endif&lt;/pre&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef PLIKZADRESATAMI_H
#define PLIKZADRESATAMI_H

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;sstream&amp;gt;

#include &quot;Adresat.h&quot;
#include &quot;MetodyPomocnicze.h&quot;
#include &quot;UzytkownikMenedzer.h&quot;

using namespace std;

class PlikZAdresatami
{
    vector &amp;lt;Adresat&amp;gt; adresaci;
    string nazwaPlikuZAdresatami;
    const string nazwaPlikuTymczasowego;
    string liniaZDanymiAdresata;
    int idOstatniegoAdresata;
    string zamienDaneAdresataNaLinieZDanymiOddzielonymiPionowymiKreskami(Adresat adresat);
    void usunPlik(string nazwaPlikuTymczasowego, string nazwaPlikuZAdresatami);
    int zwrocNumerLiniiSzukanegoAdresata(int idAdresata);
    void zmienNazwePliku(string nazwaPlikuTymczasowego, string nazwaPlikuZAdresatami);

public:
    PlikZAdresatami(string NAZWAPLIKUZADRESATAMI) : nazwaPlikuZAdresatami(NAZWAPLIKUZADRESATAMI) {
        nazwaPlikuZAdresatami = &quot;Adresaci.txt&quot;;
    };
    void dopiszAdresataDoPliku(Adresat adresat);
    int wczytajAdresatowZalogowanegoUzytkownikaZPliku();
    bool czyPlikJestPusty(fstream &amp;amp;plikZAdresatami);
    fstream plikTekstowy;
};

#endif
&lt;/pre&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;Analogicznie odwołuję się do innego obiektu plikZUzytkownikami i nie mam w tym przypadku takiego błędu jak z tym plikiem z adresatami. Z czego to wynika?&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1933/plikzadresatami-does-not-name-a-type</guid>
<pubDate>Tue, 02 Apr 2024 16:07:48 +0000</pubDate>
</item>
<item>
<title>pobieranie id zalogowanego użytkownika</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1910/pobieranie-id-zalogowanego-u%C5%BCytkownika</link>
<description>&lt;p style=&quot;text-align:justify&quot;&gt;Hej,&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;Mam kolejny problem z książką adresową.&amp;nbsp; Po skompilowaniu programu, zamiast menu głównego, gdzie powinna być opcja rejestracji użytkownika itd., pojawia się menu użytkownika, nawet jak żaden nie jest zarejestrowany. Na pewno wynika to z jakiegoś błędu z pobieraniem id zalogowanego użytkownika, bo idZalogowanegoUzytkownika nie zwraca mi żadnej wartości. Nie jestem pewna, czy dobrze pobieram to id w tej funkcji..:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
int UzytkownikMenedzer::logowanieUzytkownika()
{
    Uzytkownik uzytkownik;
    string login = &quot;&quot;;
    string haslo = &quot;&quot;;

    cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Podaj login: &quot;;
    login = MetodyPomocnicze::wczytajLinie();
    uzytkownik.ustawLogin(login);

    vector &amp;lt;Uzytkownik&amp;gt;::iterator itr = uzytkownicy.begin();
    while (itr != uzytkownicy.end())
    {
        if (itr -&amp;gt; pobierzLogin() == login)
        {
            for (int iloscProb = 3; iloscProb &amp;gt; 0; iloscProb--)
            {
                cout &amp;lt;&amp;lt; &quot;Podaj haslo. Pozostalo prob: &quot; &amp;lt;&amp;lt; iloscProb &amp;lt;&amp;lt; &quot;: &quot;;
                haslo = MetodyPomocnicze::wczytajLinie();
                uzytkownik.ustawHaslo(haslo);

                if (itr -&amp;gt; pobierzHaslo() == haslo)
                {
                    cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Zalogowales sie.&quot; &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
                    system(&quot;pause&quot;);
                    return pobierzIdZalogowanegoUzytkownika();
                }
            }
            cout &amp;lt;&amp;lt; &quot;Wprowadzono 3 razy bledne haslo.&quot; &amp;lt;&amp;lt; endl;
            system(&quot;pause&quot;);
            return 0;
        }
        itr++;
    }
    cout &amp;lt;&amp;lt; &quot;Nie ma uzytkownika z takim loginem&quot; &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
    system(&quot;pause&quot;);
    return 0;
}&lt;/pre&gt;

&lt;p&gt;Chciałam to na początku zapisać tak:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
return itr -&amp;gt; pobierzIdZalogowanegoUzytkownika(),&lt;/pre&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;ale wtedy pojawiał się błąd. pobierzIdZalogowanegoUzytkownika() jest zadeklarowana w klasie UzytkownikMenedzer jako publiczna.&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1910/pobieranie-id-zalogowanego-u%C5%BCytkownika</guid>
<pubDate>Thu, 21 Mar 2024 17:03:27 +0000</pubDate>
</item>
<item>
<title>tworzenie obiektu klasy w funkcji main</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1900/tworzenie-obiektu-klasy-w-funkcji-main</link>
<description>&lt;p style=&quot;text-align:justify&quot;&gt;Hej,&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;Pracuję nad zrozumieniem programowania obiektowego i podczas tworzenia książki adresowej pojawił mi się pewien błąd. Nie rozumiem z czego on wynika i może ktoś mi to wytłumaczy.. . W funkcji main utworzyłam obiekt klasy UzytkownikMenedzer, żeby móc wywołać funkcję wybierzOpcjeZMenuGlownego(), bo znajduje się ona w innym pliku w klasie UzytkownikMenedzer. Tak wygląda ten fragment kodu:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
include &amp;lt;iostream&amp;gt;

#include &quot;KsiazkaAdresowa.h&quot;
#include &quot;UzytkownikMenedzer.h&quot;

using namespace std;

int main()
{
    vector &amp;lt;Uzytkownik&amp;gt; uzytkownicy;
    KsiazkaAdresowa ksiazkaAdresowa(&quot;Uzytkownicy.txt&quot;, &quot;Adresaci.txt&quot;);
    char wybor;
    UzytkownikMenedzer uzytkownikMenedzer;

    while (true)
    {
        int idZalogowanegoUzytkownika = ksiazkaAdresowa.pobierzIdZalogowanegoUzytkownika();
        if (idZalogowanegoUzytkownika == 0)
        {
            wybor = uzytkownikMenedzer.wybierzOpcjeZMenuGlownego();&lt;/pre&gt;

&lt;p&gt;I podczas próby kompilacji przy tej ostatniej linijce pojawia się taki błąd: error: no matching function for call to 'UzytkownikMenedzer::UzytkownikMenedzer()'.&lt;/p&gt;

&lt;p&gt;Dlaczego jeśli zrobimy podobnie, ale poza funkcją main, w jakimś pliku z rozszerzeniem .cpp, to ten sposób odwoływania się do funkcji z jakiejś klasy działa, a w funkcji głównej już nie??&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1900/tworzenie-obiektu-klasy-w-funkcji-main</guid>
<pubDate>Sat, 16 Mar 2024 17:21:40 +0000</pubDate>
</item>
<item>
<title>Aplikacja budżetowa - błąd w konstruktorze</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1893/aplikacja-bud%C5%BCetowa-b%C5%82%C4%85d-w-konstruktorze</link>
<description>&lt;p&gt;Cześć,&lt;br&gt;
&lt;br&gt;
Podczas pisania aplikacji budżetowej w C++ napotkałem ostatnio następujący problem z konstruktorem.&lt;br&gt;
Dodam że wcześniej przy zapisie do pliku tylko wpływów aplikacja działała bez zarzutów a błąd pojawił się przy jej rozszerzeniu o plik wydatków (expenses).&lt;/p&gt;

&lt;p&gt;Tutaj dodaje zrzut ekranu błędu:&lt;br&gt;
&lt;img alt=&quot;&quot; src=&quot;https://ibb.co/qYWQYK1&quot;&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://ibb.co/qYWQYK1&quot;&gt;https://ibb.co/qYWQYK1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A tutaj link do github-a z całym kodem:&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/KamKriKoz/BudgetApp&quot;&gt;https://github.com/KamKriKoz/BudgetApp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pozdrawiam&amp;nbsp;&lt;br&gt;
Kamil&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1893/aplikacja-bud%C5%BCetowa-b%C5%82%C4%85d-w-konstruktorze</guid>
<pubDate>Wed, 13 Mar 2024 17:09:38 +0000</pubDate>
</item>
<item>
<title>Zadanie SPOJ MWP2_1E - Szpieg - nie przyjęto rozwiązania</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1888/zadanie-spoj-mwp2_1e-szpieg-nie-przyj%C4%99to-rozwi%C4%85zania</link>
<description>&lt;p&gt;Hej, mogę liczyć na podpowiedź? Mimo zastosowania wskazówek z kursu, spoj nie przyjmuje rozwiązania zadania -&amp;nbsp;Szpieg.&amp;nbsp;Ideone działa bez zarzutu. Byłabym wdzięczna za podpowiedź. Tu zadanie:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://pl.spoj.com/problems/MWP2_1E/&quot;&gt;https://pl.spoj.com/problems/MWP2_1E/&lt;/a&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

bool porownajWyrazy(const string &amp;amp;a, const string &amp;amp;b)
{
    return a[0] &amp;lt; b[0];
}
vector&amp;lt;string&amp;gt; podajPojedynczeWyrazy()
{
    string wyraz = &quot;&quot;;
    vector&amp;lt;string&amp;gt; wyrazy;

      while (getline (cin, wyraz))
    {
        wyrazy.push_back(wyraz);
        cin.clear();
        cin.sync();
    }
    return wyrazy;
}
void wypiszWyrazy(const vector&amp;lt;string&amp;gt; &amp;amp;wyrazy)
{
    for (const string &amp;amp;wyraz : wyrazy)
    {
        cout &amp;lt;&amp;lt; wyraz &amp;lt;&amp;lt; endl;
    }
}
int main()
{
   vector&amp;lt;string&amp;gt; wyrazy;
    wyrazy = podajPojedynczeWyrazy();

    sort(wyrazy.begin(), wyrazy.end(), porownajWyrazy);
    wypiszWyrazy(wyrazy);

    return 0;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1888/zadanie-spoj-mwp2_1e-szpieg-nie-przyj%C4%99to-rozwi%C4%85zania</guid>
<pubDate>Tue, 12 Mar 2024 08:20:23 +0000</pubDate>
</item>
<item>
<title>seminarium Książka adresowa obiektowo - plik .gitignore</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1880/seminarium-ksi%C4%85%C5%BCka-adresowa-obiektowo-plik-gitignore</link>
<description>&lt;p&gt;Hej,&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;Podczas wykonywania książki objektowo natrafiłam na pewien problem.&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;W pierwszym nagraniu tego seminarium, w folderze, w którym jest projekt ksiązki adresowej objektowo od razu są te foldery bin i obj, a u mnie tak&amp;nbsp; nie było, w sensie dopiero jakoś w trakcie tworzenia projektu się pojawiły. Po użyciu polecenia git status były zapisane w taki sposób:&lt;/p&gt;

&lt;p&gt;obj/Debug/KsiazkaAdresowa.o&lt;/p&gt;

&lt;p&gt;obj/Debug/Uzytkownik.o&lt;/p&gt;

&lt;p&gt;obj/Debug/main.o&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;Dlatego wtedy chciałam je zignorować, ale pomimo wprowadzenia odpowiednich zmian w pliku .gitignore, po użyciu polecenia git status, one tam nadal widniały, więc pomyślałam, że trzeba dodać ten plik jeszcze raz i zacommitować, ale po zrobieniu tego, to już w ogóle wszystkie te pliki się usunęły (to znaczy usunęły się jedynie w gicie), usunęły się też pliki projektu nad którymi pracowałam, czyli main.cpp, Uzytkownik.h, KsiazkaAdresowa.cpp itd.. Mogę to jakoś cofnąć/naprawić i jak usunąć ten folder object/Debug.., bo myślałam, że mogę wpisać w pliku .gitignore np. obj* albo obj/Debug/main.o/ itd., bo właśnie tak było przedstawione ignorowanie plików na tym nagraniu, ale właśnie mi to nie usunęło tych plików?&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1880/seminarium-ksi%C4%85%C5%BCka-adresowa-obiektowo-plik-gitignore</guid>
<pubDate>Tue, 05 Mar 2024 20:18:05 +0000</pubDate>
</item>
<item>
<title>Aplikacja budżetowa - problem z załadowaniem wektora</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1863/aplikacja-bud%C5%BCetowa-problem-z-za%C5%82adowaniem-wektora</link>
<description>&lt;p&gt;Hej,&lt;br&gt;
&lt;br&gt;
Mam mały problem z apką budżetową - próbuję napisać funkcję, która będzie zapełniać wektor informacjami zawartymi w pliku .xml - niestety wektor przyjmuje tylko pierwszą strukturę, którą uda mu się znaleźć, a resztę olewa i kończy działanie - widzicie może tutaj w kodzie jakiś błąd, który może to powodować, albo jesteście w stanie podać jakiś powód, dla którego może to nie działać tak, jak powinno?&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

#include &amp;lt;vector&amp;gt;
#include &quot;Markup.h&quot;
#include &quot;Operation.h&quot;
#include &quot;Type.h&quot;

using namespace std;

vector &amp;lt;Operation&amp;gt; XmlFile::loadOperationsFromFile(Type type, int loggedUserId)
{
    CMarkup workingFile;
    MCD_STR strXML;

    Operation operation;
    vector &amp;lt;Operation&amp;gt; operations;

    workingFile.Load(getFileName());

    switch (type)
    {
    case INCOME:
        workingFile.FindElem(&quot;Incomes&quot;);
        workingFile.IntoElem();
        break;

    case EXPANSE:
        workingFile.FindElem(&quot;Expanses&quot;);
        workingFile.IntoElem();
        break;
    }

    while(workingFile.FindElem(&quot;Operation&quot;))
    {
        workingFile.IntoElem();

        workingFile.FindElem(&quot;id&quot;);
        strXML = workingFile.GetData();
        operation.id = stoi(strXML);

        lastOperationId = operation.id;

        workingFile.FindElem(&quot;userId &quot;);
        strXML = workingFile.GetData();
        operation.userId = stoi(strXML);

        workingFile.FindElem(&quot;dateAsInt&quot;);
        strXML = workingFile.GetData();
        operation.dateAsInt = stoi(strXML);

        workingFile.FindElem(&quot;date&quot;);
        strXML = workingFile.GetData();
        operation.date = strXML;

        workingFile.FindElem(&quot;item&quot;);
        strXML = workingFile.GetData();
        operation.item = strXML;

        workingFile.FindElem(&quot;amount&quot;);
        strXML = workingFile.GetData();
        operation.amount = stod(strXML);

        if (operation.userId == loggedUserId)
        {
            operations.push_back(operation);
        }

        workingFile.OutOfElem();
    }
    workingFile.OutOfElem();

    return operations;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1863/aplikacja-bud%C5%BCetowa-problem-z-za%C5%82adowaniem-wektora</guid>
<pubDate>Mon, 04 Mar 2024 11:21:40 +0000</pubDate>
</item>
<item>
<title>Autouzupełnianie w Code Blocks</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1856/autouzupe%C5%82nianie-w-code-blocks</link>
<description>Cześć Wszystkim,&lt;br /&gt;
&lt;br /&gt;
Mam problem z Code Blocksem i jak na razie bez rezultatów próbuję rozwiązać jeden problem - jestem na etapie aplikacji do budżetu osobistego - stworzyłem nowy projekt, dodałem pliki .h i pliki .cpp - zabieram się za kodowanie i mimo tego, że w plikach nagłówkowych zainkludowałem odpowiednie biblioteki, to w plikach .cpp nie działa mi autouzupełnianie - dodałem np. bibliotekę &amp;lt;vector&amp;gt; do pliku nagłówkowego UserManager.h, a w UserMangager.cpp jak próbuję działać na jakimś wektorze, to Code Blocks nie podrzuca żadnych podpowiedzi - ktoś z Was spotkał się z takim problemem i go rozwiązał?&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam,</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1856/autouzupe%C5%82nianie-w-code-blocks</guid>
<pubDate>Tue, 27 Feb 2024 11:20:50 +0000</pubDate>
</item>
<item>
<title>Błąd bad_alloc przy logowaniu</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1829/b%C5%82%C4%85d-bad_alloc-przy-logowaniu</link>
<description>&lt;p&gt;Na etapie kodowania logowania otrzymałam takim problem jak &quot;terminate called after throwing an instance of 'std::bad_alloc'&lt;br&gt;
&amp;nbsp;&amp;nbsp;what(): &amp;nbsp;std::bad_alloc.&lt;br&gt;
&lt;br&gt;
Poniżej kod tej funkcji&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
void UzytkownikMenedzer::logowanieUzytkownika()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string login = &quot;&quot;, haslo = &quot;&quot;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Podaj login: &quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;login = metodyPomocnicze.wczytajLinie();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(Uzytkownik uzytkownik: uzytkownicy){

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (uzytkownik.pobierzLogin() == login)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int iloscProb = 3; iloscProb &amp;gt; 0; iloscProb--)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &quot;Podaj haslo. Pozostalo prob: &quot; &amp;lt;&amp;lt; iloscProb &amp;lt;&amp;lt; &quot;: &quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;haslo = metodyPomocnicze.wczytajLinie();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (uzytkownik.pobierzHaslo() == haslo)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Zalogowales sie.&quot; &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;idZalogowanegoUzytkownika = uzytkownik.pobierzId();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &quot;Wprowadzono 3 razy bledne haslo.&quot; &amp;lt;&amp;lt; endl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;system(&quot;pause&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &quot;Nie ma uzytkownika z takim loginem&quot; &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;system(&quot;pause&quot;);
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1829/b%C5%82%C4%85d-bad_alloc-przy-logowaniu</guid>
<pubDate>Wed, 14 Feb 2024 19:21:09 +0000</pubDate>
</item>
<item>
<title>brak edycji danych</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1815/brak-edycji-danych</link>
<description>&lt;p&gt;Cześć,&lt;/p&gt;

&lt;p&gt;Mam prośbę o wskazanie, co jest źle w poniższym fragmencie kodu, bo chciałabym, żeby program edytował dane adresata i zapisywał zmienioną informację do pliku, ale gdy próbuję to zrobić, pomimo wyświetlenia komunikatu, że np. imię zostało zmienione, po wyświetleniu wszystkich adresatów, nic się nie zmieniło, w pliku też bez zmian.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
void przepiszDaneAdresataPoEdycjiLubUsunieciuDoPliku(int idAktualnieZalogowanegoUzytkownika, int idWybranegoAdresata)
{
    vector &amp;lt;Adresat&amp;gt; adresaci = wczytajDaneKazdegoAdresataZPliku(idAktualnieZalogowanegoUzytkownika);
    fstream plik;
    plik.open(&quot;ksiazkaAdresowa.txt&quot;, ios::out | ios::in);

    if (plik.good())
    {
        fstream tymczasowyPlik;
        tymczasowyPlik.open(&quot;Adresaci_tymczasowy.txt&quot;, ios::out | ios::app);

        if (tymczasowyPlik.good())
        {
            for (auto itr = adresaci.begin(); itr != adresaci.end(); itr++)
            {
                if (itr-&amp;gt;idZalogowanegoUzytkownika == idAktualnieZalogowanegoUzytkownika &amp;amp;&amp;amp; itr-&amp;gt;idAdresata == idWybranegoAdresata)
                {
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;idAdresata &amp;lt;&amp;lt; &quot;|&quot;;
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;idZalogowanegoUzytkownika &amp;lt;&amp;lt; &quot;|&quot;;
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;imie &amp;lt;&amp;lt; &quot;|&quot;;
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;nazwisko &amp;lt;&amp;lt; &quot;|&quot;;
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;mail &amp;lt;&amp;lt; &quot;|&quot;;
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;numerTelefonu &amp;lt;&amp;lt; &quot;|&quot;;
                    tymczasowyPlik &amp;lt;&amp;lt; itr-&amp;gt;adresZamieszkania &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;
                }
            }
            tymczasowyPlik.close();
            plik.close();

            remove(&quot;ksiazkaAdresowa.txt&quot;);
            rename(&quot;Adresaci_tymczasowy.txt&quot;, &quot;ksiazkaAdresowa.txt&quot;);
        }
        else
        {
            cout &amp;lt;&amp;lt; &quot;Problem z otwarciem pliku tymczasowego.&quot; &amp;lt;&amp;lt; endl;
        }
    }
    else
    {
        cout &amp;lt;&amp;lt; &quot;Problem z otwarciem pliku.&quot; &amp;lt;&amp;lt; endl;
    }
}
void edytujDaneAdresata(int idAktualnieZalogowanegoUzytkownika)
{
    vector &amp;lt;Adresat&amp;gt; adresaci = wczytajDaneAdresataAktualnieZalogowanegoUzytkownikaZPliku(idAktualnieZalogowanegoUzytkownika);
    int idWybranegoAdresata = 0;
    bool adresatZnaleziony = false;

    if(!adresaci.empty())
    {
        cout &amp;lt;&amp;lt; &quot;Prosze podac numer ID adresata, ktorego chcesz edytowac:&quot; &amp;lt;&amp;lt; endl;
        idWybranegoAdresata = wczytajLiczbeCalkowita();
        for(vector&amp;lt;Adresat&amp;gt;::iterator itr = adresaci.begin(); itr != adresaci.end(); itr++)
        {
            if(itr-&amp;gt;idZalogowanegoUzytkownika == idAktualnieZalogowanegoUzytkownika &amp;amp;&amp;amp; itr-&amp;gt;idAdresata == idWybranegoAdresata)
            {
                adresatZnaleziony = true;
                cout &amp;lt;&amp;lt; &quot;Wybierz, ktora informacje chcesz edytowac: &quot; &amp;lt;&amp;lt; endl;
                cout &amp;lt;&amp;lt; &quot;1. Imie&quot; &amp;lt;&amp;lt; endl;
                cout &amp;lt;&amp;lt; &quot;2. Nazwisko&quot; &amp;lt;&amp;lt; endl;
                cout &amp;lt;&amp;lt; &quot;3. E-mail&quot; &amp;lt;&amp;lt; endl;
                cout &amp;lt;&amp;lt; &quot;4. Adres zamieszkania&quot; &amp;lt;&amp;lt; endl;
                cout &amp;lt;&amp;lt; &quot;5. Numer telefonu&quot; &amp;lt;&amp;lt; endl;

                char wybor = wczytajZnak();
                switch (wybor)
                {
                case '1':
                cout &amp;lt;&amp;lt; &quot;Podaj nowe imie: &quot;;
                itr-&amp;gt;imie = pobierzLinie();
                itr-&amp;gt;imie = zamianaPierwszejLiteryNaDuzaResztyNaMala(itr-&amp;gt;imie);
                cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Imie zostalo zmienione&quot; &amp;lt;&amp;lt; endl;
                break;
                case '2':
                cout &amp;lt;&amp;lt; &quot;Podaj nowe nazwisko: &quot;;
                itr-&amp;gt;nazwisko = pobierzLinie();
                itr-&amp;gt;nazwisko = zamianaPierwszejLiteryNaDuzaResztyNaMala(itr-&amp;gt;nazwisko);
                cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Nazwisko zostalo zmienione&quot; &amp;lt;&amp;lt; endl;
                break;
                case '3':
                cout &amp;lt;&amp;lt; &quot;Podaj nowy e-mail: &quot;;
                itr-&amp;gt;mail = pobierzLinie();
                cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Adres e-mail zostal zmieniony&quot; &amp;lt;&amp;lt; endl;
                break;
                case '4':
                cout &amp;lt;&amp;lt; &quot;Podaj nowy adres zamieszkania: &quot;;
                itr-&amp;gt;adresZamieszkania = pobierzLinie();
                cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Adres zamieszkania zostal zmieniony&quot; &amp;lt;&amp;lt; endl;
                break;
                case '5':
                cout &amp;lt;&amp;lt; &quot;Podaj nowy numer telefonu: &quot;;
                itr-&amp;gt;numerTelefonu = pobierzLinie();
                cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Numer telefonu zostal zmieniony&quot; &amp;lt;&amp;lt; endl;
                break;
                default:
                cout &amp;lt;&amp;lt; &quot;Niepoprawny wybor. Sprobuj wybrac jeszcze raz&quot; &amp;lt;&amp;lt; endl;
                break;
                }
                przepiszDaneAdresataPoEdycjiLubUsunieciuDoPliku(idAktualnieZalogowanegoUzytkownika, idWybranegoAdresata);
            }
        }
        if (adresatZnaleziony == false)
        {
            cout &amp;lt;&amp;lt; &quot;Nie ma adresata z takim numerem ID.&quot; &amp;lt;&amp;lt; endl;
            Sleep(1000);
        }
    }
    else
    {
        cout &amp;lt;&amp;lt; &quot;Pusta ksiazka adresowa.&quot; &amp;lt;&amp;lt; endl;
        Sleep(1500);
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1815/brak-edycji-danych</guid>
<pubDate>Sun, 21 Jan 2024 11:27:57 +0000</pubDate>
</item>
<item>
<title>Seminarium 15, wyzwanie 5 - dekompresor tekstu</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1786/seminarium-15-wyzwanie-5-dekompresor-tekstu</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
Utknęłam na wyzwaniu 5 z seminarium 15. Nie mogę zupełnie wymyślić algorytmu do rozwiązania tego zadania. Jedyny pomysł, na jaki wpadłam, to przechodzenie pętlą przez znaki w wejściowym tekście i sprawdzanie kodu ASCII znaku. Ale co dalej???</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1786/seminarium-15-wyzwanie-5-dekompresor-tekstu</guid>
<pubDate>Fri, 27 Oct 2023 11:22:20 +0000</pubDate>
</item>
<item>
<title>SPOJ FR_02_06 - BMI (seminarium 15)</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1752/spoj-fr_02_06-bmi-seminarium-15</link>
<description>&lt;p&gt;Cześć,&lt;/p&gt;

&lt;p&gt;Rozwiązuję zadanie o BMI ze SPOJ. Ideone wskazuje na błąd przy użyciu funkcji konwertującej stoi. W Code Blocks program działa mi na przykładach ze SPOJ i nie ma problemu z konwersją. Ktoś ma pomysł, co robię nie tak?&lt;/p&gt;

&lt;p&gt;Tu jest link do Ideone:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://ideone.com/F5F9Wx&quot;&gt;F5F9Wx - Online C++0x Compiler &amp;amp; Debugging Tool - Ideone.com&lt;/a&gt;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1752/spoj-fr_02_06-bmi-seminarium-15</guid>
<pubDate>Tue, 22 Aug 2023 09:52:05 +0000</pubDate>
</item>
<item>
<title>SPOJ - PRIME_T - Liczby Pierwsze</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1751/spoj-prime_t-liczby-pierwsze</link>
<description>&lt;p&gt;Co tu może być źle? Kopanie w necie nie za dużo dało, zwłaszcza że to jest proste zadanie i nie chcę kopiować czyjegoś rozwiązania. Wolałbym wiedzieć, co nie działa. Błąd: błędna odpowiedź.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
using namespace std;


bool checkIfPrime(int number){
    if (number &amp;lt;=2) {return false;}
    else {
        for (int i = 2; i &amp;lt;= number/2; i++) {
            if (number % i == 0) {
                return false;
                break;
            }
        }
        return true;
    }
}


int main()
{
    int numberToCheck;
    int tests;
    cin &amp;gt;&amp;gt; tests;
    for (int i = 1; i &amp;lt;= tests; i++) {
        cin &amp;gt;&amp;gt; numberToCheck;
        if (checkIfPrime(numberToCheck)) {
            cout &amp;lt;&amp;lt; &quot;TAK&quot; &amp;lt;&amp;lt; endl;
        } else {
            cout &amp;lt;&amp;lt; &quot;NIE&quot; &amp;lt;&amp;lt; endl;
        }
    }
    return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1751/spoj-prime_t-liczby-pierwsze</guid>
<pubDate>Tue, 22 Aug 2023 09:42:30 +0000</pubDate>
</item>
<item>
<title>spoj Wieża - tylko u mnie działa :(</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1747/spoj-wie%C5%BCa-tylko-u-mnie-dzia%C5%82a</link>
<description>&lt;p&gt;Próbuję rozwiązać zadanie &lt;a href=&quot;https://pl.spoj.com/problems/FR_16_09/&quot; rel=&quot;noreferrer nofollow noopener&quot; target=&quot;_blank&quot;&gt;https://pl.spoj.com/problems/FR_16_09/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Czy ktoś potrafi podpowiedzieć, dlaczego spoj odrzuca ten kod?&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

#include &amp;lt;cmath&amp;gt;

using namespace std;


long double countDistance(int i) {

  int h, r, n;

  cin &amp;gt;&amp;gt; h &amp;gt;&amp;gt; r &amp;gt;&amp;gt; n;

  long double z = pow(((h*h)+(4*M_PI*M_PI*r*r*n*n)), 0.5);

  return z;

}


int main() {

  int testsNumber;

  cin &amp;gt;&amp;gt; testsNumber;

  for (int i=1; i&amp;lt;= testsNumber; i++) {

    cout.precision(2); cout &amp;lt;&amp;lt; fixed;

    cout &amp;lt;&amp;lt; countDistance(i) &amp;lt;&amp;lt; endl;

  }

}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1747/spoj-wie%C5%BCa-tylko-u-mnie-dzia%C5%82a</guid>
<pubDate>Sat, 19 Aug 2023 10:09:34 +0000</pubDate>
</item>
<item>
<title>CALC_Kalkulator</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1696/calc_kalkulator</link>
<description>&lt;p&gt;Poniższy program prawidłowo się kompiluje, działa dla wszystkich testów jakie proponuje SPOJ. Jednak po wrzuceniu wyskakuje błąd. Może za mocno go sobie skomplikowałem? Jakiegoś testu mi nie przejdzie?&lt;/p&gt;

&lt;p&gt;Nie mogę zlokalizować tego błędu.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int wykonajObliczenie(char symbolOperacji, int pierwszaLiczba, int drugaLiczba)
{
  int wynikDzialania;
  switch(symbolOperacji)
        {
            case '+': wynikDzialania = pierwszaLiczba + drugaLiczba ; break;
            case '-': wynikDzialania = pierwszaLiczba - drugaLiczba ; break;
            case '*': wynikDzialania = pierwszaLiczba * drugaLiczba ; break;
            case '/': wynikDzialania = pierwszaLiczba / drugaLiczba ; break;
            case '%': wynikDzialania = pierwszaLiczba % drugaLiczba ; break;
        };
  return wynikDzialania;
}
int main()
{
  int iloscTestow;
  char symbol;
  int pierwszaLiczba, drugaLiczba;
  int wynik;
  cin &amp;gt;&amp;gt; iloscTestow;
  for(int i = 0; i&amp;lt;iloscTestow; i++)
  {
     cin &amp;gt;&amp;gt; symbol &amp;gt;&amp;gt; pierwszaLiczba &amp;gt;&amp;gt; drugaLiczba;
     wynik = wykonajObliczenie(symbol, pierwszaLiczba, drugaLiczba);
     cout &amp;lt;&amp;lt; wynik &amp;lt;&amp;lt; endl;
  }
  return 0;
}&lt;/pre&gt;

&lt;p&gt;&amp;lt;&amp;gt;&amp;lt;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1696/calc_kalkulator</guid>
<pubDate>Mon, 26 Jun 2023 19:33:05 +0000</pubDate>
</item>
<item>
<title>zmodyfikowany program flamaster</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1680/zmodyfikowany-program-flamaster</link>
<description>cześć :) &lt;br /&gt;
&lt;br /&gt;
Mam stworzyć taką funkcję, do której będę podawać wyrazDoSkrocenia oraz to od jakiej ilości znaków ma nastąpić skrócenie. Na wyjściu ma być zwrócony skrócony wyraz.&lt;br /&gt;
&lt;br /&gt;
Coś nie działa tutaj jak trzeba. Nie jestem pewna czy warunki w funkcji są ok.&lt;br /&gt;
&lt;br /&gt;
Proszę pomóżcie :) &lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
string KonwersjaIntNaString(int liczba)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ostringstream ss;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ss &amp;lt;&amp;lt; liczba;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string str = ss.str();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return str;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string wyrazDoSkrocenia;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int dlugosc;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int iloscWystapien=1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int poczatek;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int minimalnaIloscLiczbDoskrocenia;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; wyrazDoSkrocenia;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; minimalnaIloscLiczbDoskrocenia;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dlugosc = wyrazDoSkrocenia.length();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; &amp;nbsp;dlugosc-(minimalnaIloscLiczbDoskrocenia+(iloscWystapien-minimalnaIloscLiczbDoskrocenia)); i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((wyrazDoSkrocenia[i]==wyrazDoSkrocenia[i+1]) )&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;poczatek = i;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iloscWystapien = 1;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(wyrazDoSkrocenia[i]==wyrazDoSkrocenia[i+1])&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iloscWystapien++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (iloscWystapien &amp;gt;= minimalnaIloscLiczbDoskrocenia)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wyrazDoSkrocenia.replace(poczatek,iloscWystapien,wyrazDoSkrocenia[poczatek]+KonwersjaIntNaString(iloscWystapien));&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; wyrazDoSkrocenia &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1680/zmodyfikowany-program-flamaster</guid>
<pubDate>Thu, 15 Jun 2023 16:52:13 +0000</pubDate>
</item>
<item>
<title>funkcje własne - tablice</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1617/funkcje-w%C5%82asne-tablice</link>
<description>Cześć, próbuję zrobić zadanie na spoj-u związane z tablicami i potrzebuję utworzyć funkcję własną, a później wywołać ją w funkcji main. Problem w tym, że nie wiem jak zwrócić tablicę w mojej funkcji. Czytałam, że można to zrobić przy użyciu wektorów, ale nie za bardzo wiem jak. Może ktoś pomoże?&lt;br /&gt;
&lt;br /&gt;
Zadanie na spoj-u:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://pl.spoj.com/problems/PP0502B/&quot; rel=&quot;nofollow&quot;&gt;https://pl.spoj.com/problems/PP0502B/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Mój kod:&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;odwrocLiczby(int ileLiczb)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int i;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int *tablica;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; ileLiczb;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tablica = new int[ileLiczb];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; ileLiczb ; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; tablica[i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = ileLiczb-1; i &amp;gt; -1 ; i--)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; tablica[i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return tablica[i];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delete [] tablica;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int ileTestow, ileLiczb;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; ileTestow;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; ileTestow ; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; odwrocLiczby(ileLiczb);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1617/funkcje-w%C5%82asne-tablice</guid>
<pubDate>Fri, 26 May 2023 15:01:54 +0000</pubDate>
</item>
<item>
<title>Aplikacja budżetowa - zamiana przecinka na kropkę</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1614/aplikacja-bud%C5%BCetowa-zamiana-przecinka-na-kropk%C4%99</link>
<description>&lt;p&gt;Cześć :)&lt;/p&gt;

&lt;p&gt;Potrzebuję pomocy w zrozumieniu dlaczego taki zapis&amp;nbsp;nie działa:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
string AuxilaryMethods::convertFromCommaToDot(string stringNumber) {
    for(char c : stringNumber) {
        if(c == ',')
            c = '.';
    }
    return stringNumber;
}&lt;/pre&gt;

&lt;p&gt;tak jak ten :&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
string AuxilaryMethods::convertFromCommaToDot(string stringNumber) {
   for(size_t i = 0; i &amp;lt; stringNumber.length(); i++)
   {
       if(stringNumber[i] == ',')
        stringNumber[i] = '.';
   }
    return stringNumber;
}
&lt;/pre&gt;

&lt;p&gt;Dzięki!&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1614/aplikacja-bud%C5%BCetowa-zamiana-przecinka-na-kropk%C4%99</guid>
<pubDate>Tue, 23 May 2023 18:54:50 +0000</pubDate>
</item>
<item>
<title>Aplikacja do prowadzenia budżetu osobistego - pobranie daty</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1602/aplikacja-do-prowadzenia-bud%C5%BCetu-osobistego-pobranie-daty</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
jestem na etapie ostatniego zadania z C++.&lt;br /&gt;
Na początku chciałem sprawdzić jak działa pobieranie daty systemowej&lt;br /&gt;
korzystając z biblioteki CMarkup.&lt;br /&gt;
Odszukałem funkcję GetData(), ale ta funkcja zwraca dane, a nie datę.&lt;br /&gt;
&lt;br /&gt;
W jaki sposób można pobrać datę?</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1602/aplikacja-do-prowadzenia-bud%C5%BCetu-osobistego-pobranie-daty</guid>
<pubDate>Mon, 01 May 2023 17:00:03 +0000</pubDate>
</item>
<item>
<title>książka adresowa po raz kolejny :/</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1588/ksi%C4%85%C5%BCka-adresowa-po-raz-kolejny</link>
<description>&lt;p&gt;Hej,&amp;nbsp;&lt;/p&gt;

&lt;p&gt;mam problem z rozwiązaniem problemu zapisu i odczytu z pliku dla zadania książka adresowa (seminarium jak tworzyć rozbudowany program).&lt;/p&gt;

&lt;p&gt;problem jaki występuje to:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;jeżeli uruchomię program po raz pierwszy to teoretycznie wszystko działa czyli mogę dodawać/ wyszukiwać/ wyświetlać wszystkie zapisane kontakty, niestety problem pojawia się po ponownym uruchomieniu konsoli teoretycznie nadal działa jednak opcja wyświetl wszystkie kontakty zwraca mi takie wartości&amp;nbsp;&lt;/p&gt;

&lt;p&gt;ID: 0&lt;br&gt;
Imie:&lt;br&gt;
Nazwisko:&lt;br&gt;
Numer telefonu:&lt;br&gt;
Adres e-mail:&lt;br&gt;
Adres:&lt;/p&gt;

&lt;p&gt;ID: 0&lt;br&gt;
Imie:&lt;br&gt;
Nazwisko:&lt;br&gt;
Numer telefonu:&lt;br&gt;
Adres e-mail:&lt;br&gt;
Adres:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;debbuger wskazuje że problem mam w int main () jednak totalnie nie wiem jak go rozwiązać, nawet przespanie się z problemem nie pomogło :/&lt;/p&gt;

&lt;p&gt;być może pomieszałam cos w kodzie wcześniej ?&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;a i pytanie dodatkowe po co używa się &amp;nbsp;system(&quot;cls&quot;)? - nie rozumiem sensu użycia tej funkcji a w wielu przykładach się ona pojawia&lt;/p&gt;

&lt;pre class=&quot;brush:plain;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;limits&amp;gt;
#include &amp;lt;windows.h&amp;gt;

using namespace std;

struct Person
{
    int id = 0;
    string firstName, lastName, phoneNumber, email, address;

};
string readLine()
{
    string input;
    cin.sync();
    getline(cin, input);
    return input;
}

void addPersonToFile (vector &amp;lt;Person&amp;gt; &amp;amp;people)
{
    fstream file;
    file.open(&quot;addressBook.txt&quot;, ios::out);

    if (file.good() == true)
    {
        for (long long unsigned int i = 0; i &amp;lt; people.size(); i++)
        {
            file &amp;lt;&amp;lt; &quot;ID: &quot; &amp;lt;&amp;lt; people[i].id &amp;lt;&amp;lt; &quot;|&quot;;
            file &amp;lt;&amp;lt; &quot;Imie: &quot; &amp;lt;&amp;lt; people[i].firstName &amp;lt;&amp;lt; &quot;|&quot;;
            file &amp;lt;&amp;lt; &quot;Nazwisko: &quot; &amp;lt;&amp;lt; people[i].lastName &amp;lt;&amp;lt; &quot;|&quot;;
            file &amp;lt;&amp;lt; &quot;Nr telefonu: &quot; &amp;lt;&amp;lt; people[i].phoneNumber &amp;lt;&amp;lt; &quot;|&quot;;
            file &amp;lt;&amp;lt; &quot;Mail: &quot; &amp;lt;&amp;lt; people[i].email &amp;lt;&amp;lt; &quot;|&quot;;
            file &amp;lt;&amp;lt; &quot;Adres: &quot; &amp;lt;&amp;lt; people[i].address &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;;
        }
    }
    file.close();
}

void addPerson(vector&amp;lt;Person&amp;gt; &amp;amp;people, int &amp;amp;idCounter)
{
    Person person;
    person.id = idCounter++;

    cout &amp;lt;&amp;lt; &quot;Podaj imie: &quot;;
    person.firstName = readLine();

    cout &amp;lt;&amp;lt; &quot;Podaj nazwisko: &quot;;
    person.lastName = readLine();

    cout &amp;lt;&amp;lt; &quot;Podaj numer telefonu: &quot;;
    person.phoneNumber = readLine();

    cout &amp;lt;&amp;lt; &quot;Podaj e-mail: &quot;;
    person.email = readLine();


    cout &amp;lt;&amp;lt; &quot;Podaj adres: &quot;;
    person.address = readLine();

    person.id = (people.size()) + 1;
    people.push_back(person);

    cout &amp;lt;&amp;lt; &quot;Osoba dodana do ksiazki adresowej.&quot; &amp;lt;&amp;lt; endl;

    Sleep (1000);

    addPersonToFile(people);
    cout &amp;lt;&amp;lt; endl;
}

void displayAllPeople(vector &amp;lt;Person&amp;gt; people)
{
    for ( long long unsigned int i = 0; i &amp;lt; people.size(); i++)
    {
        cout &amp;lt;&amp;lt; &quot;ID: &quot; &amp;lt;&amp;lt; people[i].id &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Imie: &quot; &amp;lt;&amp;lt; people[i].firstName &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Nazwisko: &quot; &amp;lt;&amp;lt; people[i].lastName &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Numer telefonu: &quot; &amp;lt;&amp;lt; people[i].phoneNumber &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Adres e-mail: &quot; &amp;lt;&amp;lt; people[i].email &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Adres: &quot; &amp;lt;&amp;lt; people[i].address &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; endl;
    }
}
void searchByFirstName(vector&amp;lt;Person&amp;gt;&amp;amp; people)
{
    string firstName;
    cout &amp;lt;&amp;lt;&quot;Podaj imie po ktorym chcesz wyszukac: &quot;;
    cin &amp;gt;&amp;gt; firstName;

    vector &amp;lt;Person&amp;gt; results;
    for (const auto&amp;amp; person : people)
    {
        if (person.firstName == firstName)
        {
            results.push_back(person);
        }
    }

    if (results.empty())
    {
        cout &amp;lt;&amp;lt; &quot;Nie znaleziono osob o podanym imieniu.&quot; &amp;lt;&amp;lt; endl;
        return;
    }

    cout &amp;lt;&amp;lt; &quot;Oto wyniki wyszukiwania:&quot; &amp;lt;&amp;lt; endl;
    for (const auto&amp;amp; person : results)
    {
        displayAllPeople(results);
        cout &amp;lt;&amp;lt; endl;
    }
}

void searchByLastName(vector&amp;lt;Person&amp;gt;&amp;amp; people)
{
    string lastName;
    cout &amp;lt;&amp;lt;&quot;Podaj nazwisko po ktorym chcesz wyszukac: &quot;;
    cin &amp;gt;&amp;gt; lastName;
    cout &amp;lt;&amp;lt; endl;

    vector&amp;lt;Person&amp;gt; results;
    for (const auto&amp;amp; person : people)
    {
        if (person.lastName == lastName)
        {
            results.push_back(person);
        }
    }

    if (results.empty())
    {
        cout &amp;lt;&amp;lt; &quot;Nie znaleziono osob o podanym nazwisku.&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt;endl;
        return;
    }

    cout &amp;lt;&amp;lt; &quot;Oto wyniki wyszukiwania:&quot; &amp;lt;&amp;lt; endl;
    for (const auto&amp;amp; person : results)
    {
        displayAllPeople(results);
        cout &amp;lt;&amp;lt; endl;
    }
}


void displayPeopleSaveInFile( vector&amp;lt;Person&amp;gt;&amp;amp; people)

{
    Person individualPerson;
    string personData{};

    fstream file;
    file.open(&quot;addressBook.txt&quot;, ios::in);

    if (file.good())
    {
        while (getline (file, personData)) // ksizka strona 309)
        {
            string individualData{};
            int personNumber = 1;
            for (size_t i{}; i &amp;lt; personData.length(); ++i)
            {
                if (personData[i] != '|')
                {
                    individualData += personData[i];
                }
                else
                {
                    switch (personNumber)
                    {
                    case 1:
                        individualPerson.id = stoi(individualData);
                        break;
                    case 2:
                        individualPerson.firstName = individualData;
                        break;
                    case 3:
                        individualPerson.lastName = individualData;
                        break;
                    case 4:
                        individualPerson.phoneNumber = individualData;
                        break;
                    case 5:
                        individualPerson.email = individualData;
                        break;
                    case 6:
                        individualPerson.address = individualData;
                        break;
                    }
                    individualData = &quot;&quot;;
                    personNumber++;
                }
            }
            people.push_back(individualPerson);
        }
    }
    file.close();
}

bool isFileExist (const string&amp;amp; fileName)
{
    fstream file;
    file.open(fileName.c_str(), ios::in);
    if ( file.is_open() )
    {
        file.close();
        return true;
    }
    file.close();
    return false;
}
int main()
{
    vector&amp;lt;Person&amp;gt; people;
    int idCounter = people.empty() ? 1 : people.back().id+1; // forum pasja informatyki

    char choice;
    displayPeopleSaveInFile(people);

    while (true)
    {
        cout &amp;lt;&amp;lt; &quot;Twoja Ksiazka Adresowa &quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;1. Dodaj nowa osobe &quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;2. Wyszukaj po imieniu&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;3. Wyszukaj po nazwisku&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;4 .Wyszystkie kontakty&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;5. Zakoncz program &quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Twoj wybor: &quot;;

        cin &amp;gt;&amp;gt; choice;

        switch (choice)
        {
        case '1':
            addPerson(people, idCounter);
            break;

        case '2':

            searchByFirstName(people);
            break;


        case '3':

            searchByLastName(people);
            break;

        case '4':
            displayAllPeople(people);
            break;

        case '5':
            cout &amp;lt;&amp;lt; &quot;Dziekujemy za skorzystanie z programu!&quot; &amp;lt;&amp;lt; endl;
            return 0;
        default:
            cout &amp;lt;&amp;lt; &quot;Nieprawidlowy wybor. Sprobuj ponownie.&quot; &amp;lt;&amp;lt; endl;
            break;
        }
    }
    return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1588/ksi%C4%85%C5%BCka-adresowa-po-raz-kolejny</guid>
<pubDate>Sun, 23 Apr 2023 23:04:02 +0000</pubDate>
</item>
<item>
<title>Seminarium 11 - merge sort - error 0xC0000374</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1582/seminarium-11-merge-sort-error-0xc0000374</link>
<description>&lt;p&gt;Witam&lt;/p&gt;

&lt;p&gt;Uruchamiam kod algorytmu Merge sort udostępniony w seminarium. Program działa poprawnie i sortuje tablicę, jednak na końcu programu wyskakuję błąd &quot;Process returned -1073740940 (0xC0000374)&quot;. W seminarium wszystko działało poprawnie ( Process returned 0 (0x0)).&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Rozumiem, że problem powstaję przez operator delete [] tablica,&amp;nbsp;który kasuje tablicę utworzoną na początku programu, ponieważ błąd nie pojawia się gdy usunę tą linijkę.&lt;/p&gt;

&lt;p&gt;Nie mogę dojść jak skasować tablicę na końcu programu i&amp;nbsp;jak naprawić wyskakujący błąd.&lt;/p&gt;

&lt;p&gt;Poniżej kod:&lt;/p&gt;

&lt;pre class=&quot;brush:plain;&quot;&gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;windows.h&amp;gt;
using namespace std;

void scalanie(int tablica[], int start, int srodek, int koniec)
{
    cout &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;SCALANIE: &quot; &amp;lt;&amp;lt; &quot;tablica[&quot; &amp;lt;&amp;lt; start &amp;lt;&amp;lt; &quot;]=&quot; &amp;lt;&amp;lt; tablica[start] &amp;lt;&amp;lt;&quot; &quot;;
    cout &amp;lt;&amp;lt; &quot;tablica[&quot; &amp;lt;&amp;lt; srodek &amp;lt;&amp;lt; &quot;]=&quot; &amp;lt;&amp;lt; tablica[srodek] &amp;lt;&amp;lt;&quot; &quot;;
    cout &amp;lt;&amp;lt; &quot;tablica[&quot; &amp;lt;&amp;lt; koniec &amp;lt;&amp;lt; &quot;]=&quot; &amp;lt;&amp;lt; tablica[koniec] &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
    system(&quot;pause&quot;);

    int *tab_pom = new int[(koniec-start+1)]; // utworzenie tablicy pomocniczej
    int i = start, j = srodek+1, k = 0; // zmienne pomocnicze

    while (i &amp;lt;= srodek &amp;amp;&amp;amp; j &amp;lt;= koniec)
    {
        if (tablica[j] &amp;lt; tablica[i])
        {
            tab_pom[k] = tablica[j];
            j++;
        }
        else
        {
            tab_pom[k] = tablica[i];
            i++;
        }
        k++;
    }

    if (i &amp;lt;= srodek)
    {
        while (i &amp;lt;= srodek)
        {
            tab_pom[k] = tablica[i];
            i++;
            k++;
        }
    }
    else
    {
        while (j &amp;lt;= koniec)
        {
            tab_pom[k] = tablica[j];
            j++;
            k++;
        }
    }

    for (i = 0; i &amp;lt;= koniec-start; i++)
        tablica[start+i] = tab_pom[i];

    delete [] tab_pom;
}

void SortowaniePrzezScalanie(int tablica[], int start, int koniec)
{
    cout &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;DZIELENIE: &quot; &amp;lt;&amp;lt; &quot;tablica[&quot; &amp;lt;&amp;lt; start &amp;lt;&amp;lt; &quot;]=&quot; &amp;lt;&amp;lt; tablica[start] &amp;lt;&amp;lt;&quot; &quot;;
    cout &amp;lt;&amp;lt; &quot;tablica[&quot; &amp;lt;&amp;lt; koniec &amp;lt;&amp;lt; &quot;]=&quot; &amp;lt;&amp;lt; tablica[koniec] &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
    system(&quot;pause&quot;);

    int srodek;

    if (start != koniec)
    {
        srodek = (start + koniec)/2;
        SortowaniePrzezScalanie(tablica, start, srodek);
        SortowaniePrzezScalanie(tablica, srodek+1, koniec);
        scalanie(tablica, start, srodek, koniec);
    }
}

bool czyTablicaJestPosortowana(int tablica[], int iloscLiczb)
{
    bool posortowana = true;
    for (int i = 0; i &amp;lt; iloscLiczb-1; i++) { if (tablica[i] &amp;gt; tablica[i+1])
            posortowana = false;
    }
    return posortowana;
}

void wypiszElementyTablicy(int tablica[], int iloscElementow)
{
    cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Wypisuje tablice: &quot;;
    for (int i = 0; i &amp;lt; iloscElementow; i++)
        cout &amp;lt;&amp;lt; tablica[i] &amp;lt;&amp;lt; &quot; &quot;;
    cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
    system(&quot;pause&quot;);
}

int main()
{
    int i;
    int iloscLiczb = 7;
    int tablica[iloscLiczb]= {38,27,43,3,9,82,10}; // tablica zawierajaca ciag wejsciowy


    SortowaniePrzezScalanie(tablica, 0, iloscLiczb-1);

    if (czyTablicaJestPosortowana(tablica,iloscLiczb) == true)
        cout &amp;lt;&amp;lt; &quot;TAK. Tablica jest posortowana.&quot; &amp;lt;&amp;lt; endl;
    else
        cout &amp;lt;&amp;lt; &quot;NIE. Tablica nie jest posortowana.&quot; &amp;lt;&amp;lt; endl;



    cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;wynik:&quot; &amp;lt;&amp;lt; endl;
    for (i = 0; i &amp;lt; iloscLiczb; i++) // wypisanie posortowanej tablicy
        cout &amp;lt;&amp;lt; &quot;tablica[&quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot;] = &quot; &amp;lt;&amp;lt; tablica[i] &amp;lt;&amp;lt; endl;

    // zwolnienie tablicy zaalokowanej dynamicznie
    delete [] tablica;

    return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1582/seminarium-11-merge-sort-error-0xc0000374</guid>
<pubDate>Thu, 20 Apr 2023 12:01:53 +0000</pubDate>
</item>
<item>
<title>Zadanie SPOJ - CALC</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1572/zadanie-spoj-calc</link>
<description>&lt;p&gt;Cześć :))&lt;br&gt;
SPOJ przyjął moje rozwiązanie zadania CALC (&lt;a href=&quot;https://pl.spoj.com/problems/CALC/),&quot; rel=&quot;nofollow&quot;&gt;https://pl.spoj.com/problems/CALC/),&lt;/a&gt; ale niejasny jest dla mnie trochę warunek kiedy pętla DO WHILE ma się zakończyć.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;

using namespace std;

int main()
{
    string operationType;
    int num1, num2;

    do
    {
        cin &amp;gt;&amp;gt; operationType;
        cin &amp;gt;&amp;gt; num1;
        cin &amp;gt;&amp;gt; num2;

        if (operationType == &quot;+&quot;)
            cout &amp;lt;&amp;lt; num1 + num2 &amp;lt;&amp;lt; endl;
        else if (operationType == &quot;-&quot;)
            cout &amp;lt;&amp;lt; num1 - num2 &amp;lt;&amp;lt; endl;
        else if (operationType == &quot;*&quot;)
            cout &amp;lt;&amp;lt; num1 * num2 &amp;lt;&amp;lt; endl;
        else if (operationType == &quot;/&quot;)
            cout &amp;lt;&amp;lt; num1 / num2 &amp;lt;&amp;lt; endl;
        else if (operationType == &quot;%&quot;)
            cout &amp;lt;&amp;lt; num1 % num2 &amp;lt;&amp;lt; endl;

    } while (getline(cin, operationType));

    return 0;
}
&lt;/pre&gt;

&lt;p&gt;Testowałem 3 różne warunki:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) while (getline(cin, operationType)) -&amp;nbsp;&lt;/strong&gt;jedyny warunek, który mi działa poprawnie. Tylko czy to nie jest tak, że ten warunek oznacza, że cały wprowadzony wiersz (np. + 7 9) jest wpisany do jednej zmiennej operationType?&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) while (cin &amp;gt;&amp;gt; operationType) -&amp;nbsp;&lt;/strong&gt;po pierwszym&amp;nbsp;zestawie danych program się kończy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) while (cin &amp;gt;&amp;gt; operationType &amp;gt;&amp;gt; num1 &amp;gt;&amp;gt; num2)&lt;/strong&gt; - Poprawnie działa tylko co drugi zestaw danych, a wydaje mi się ten zapis poprawniejszy od 1)&lt;/p&gt;

&lt;p&gt;Będę wdzięczny za wyjaśnienie tych 3 warunków lub podpowiedź w jaki sposób zapisać to lepiej.&lt;/p&gt;

&lt;p&gt;Dzięki!&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1572/zadanie-spoj-calc</guid>
<pubDate>Fri, 14 Apr 2023 11:37:36 +0000</pubDate>
</item>
<item>
<title>SPOJ PRIME_T - Liczby Pierwsze</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1532/spoj-prime_t-liczby-pierwsze</link>
<description>&lt;p&gt;Siemka,&lt;br&gt;
&lt;br&gt;
Nie uwierzycie, siedzę nad tym prawie całe popołudnie.&lt;br&gt;
&lt;br&gt;
Zaczęłam bardzo hardkorowo, ale ostatecznie okazało się, że nie jest to skomplikowane zadanie do momentu konieczności zapętlenia na samym początku (podanie liczby testów). W moim programie poprzez exit(0) kończę pętlę gdy liczba nie jest pierwszą (ResztaDzielenia = 0). Ale to się gryzie z koniecznością sprawdzenia kolejnej liczby z zadanej puli testów.&lt;br&gt;
&lt;br&gt;
Dajcie podpowiedzi bo zniechęca mnie to zadanie jak dawno nic :p&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;math.h&amp;gt;

using namespace std;

int WyznaczanieMaxDzielnikaPrzedzialu(int a)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float b = sqrt(a);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int c = int(b);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return c;
}

int main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int n;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; n;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int j=1; j&amp;lt;=n; j++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int x;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int ResztaDzielenia;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; x;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int z = WyznaczanieMaxDzielnikaPrzedzialu(x);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (x == 1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &quot;NIE&quot; &amp;lt;&amp;lt; endl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 2; i &amp;lt;= z; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ResztaDzielenia = x%i;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ResztaDzielenia == 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &quot;NIE&quot; &amp;lt;&amp;lt; endl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &quot;TAK&quot; &amp;lt;&amp;lt; endl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1532/spoj-prime_t-liczby-pierwsze</guid>
<pubDate>Sun, 12 Mar 2023 19:06:30 +0000</pubDate>
</item>
<item>
<title>Apka finansowa, (nie)widoczna wartość wektora</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1526/apka-finansowa-nie-widoczna-warto%C5%9B%C4%87-wektora</link>
<description>&lt;p&gt;Witajcie,&lt;/p&gt;

&lt;p&gt;szybkie streszczenie problemu i szybkie pytanie.&lt;br&gt;
&lt;br&gt;
Od wczoraj tłukę się z odpowiednim przeliczeniem przychodów/wydatków. Poprosiłem o pomoc ChatGPT, przez chwilę myślałem że pomogło, jednak okazało się że iterowałem po całym wektorze, a nie po posortowanym. W czym jest szkopuł:&lt;br&gt;
obecnie kiedy zaloguje się, wyświetla prawidłowo bilans obecnego miesiąca. W momencie kiedy dodam przychód, mój program świruje i &quot;nie widzi&quot; nowych danych wprowadzonych do wektora, pomimo tego, że jak wy'cout'uje wszystkie przychody, to ostatni przychód widzi, ale go nie dodaje do pozostałych. Jak tylko zrobie reloga, wszystko działa jak należy spowrotem.&lt;br&gt;
Tak jakbym nie aktualizował vectora za każdym razem jak dodam przychod/wydatek, ale jednak on tam jest i widnieje :V.&lt;/p&gt;

&lt;p&gt;Czy nie powinienem dodać w konstruktorze klasy Balance jakiegoś aktualizatora?&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
float Balance::current_month_income(Income income) {

    float income_float = 0;

    if (income.get_date_in_int() &amp;gt;= Helpful_Methods::date_without_dashes_in_int(Date::get_fuly_beginning_date_of_current_month()) &amp;amp;&amp;amp; income.get_date_in_int() &amp;lt;= Helpful_Methods::date_without_dashes_in_int(Date::get_current_data_from_PC())) {

        income_float = Helpful_Methods::string_to_float_conversion(income.get_incomes_amount());

        return income_float;

    } else return 0;
}

&lt;/pre&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
void Balance::display_current_months_balance(vector &amp;lt;Income&amp;gt; incomes, vector &amp;lt;Expense&amp;gt; expenses) {
    
    SYSTEMTIME st;
    GetSystemTime(&amp;amp;st);
    
    float incomes_amount = 0;
    float income_sum = 0;
    float druga_suma = 0;
    float drugi_income = 0;

    char choice;

    if (incomes.empty() == false) {

        Helpful_Methods::displaying_current_month_and_year_income();

        cout &amp;lt;&amp;lt; &quot;Do you wish to display all incomes? Answer (y/n)&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; choice;

        if ( answer(choice) == true) {
            display_info_about_incomes(incomes);
        }
        else{
            cout &amp;lt;&amp;lt; &quot;You chose not to display all incomes. Moving forward.&quot; &amp;lt;&amp;lt; endl;
        }
         sort_income(income);
         for (vector &amp;lt;Income&amp;gt; :: iterator itr = incomes.begin(); itr != incomes.end(); itr++){

            //sort_income(*itr);
            incomes_amount = current_month_income(*itr);
            income_sum = income_sum + incomes_amount;

        }
        cout &amp;lt;&amp;lt; &quot;suma iteratoa: &quot; &amp;lt;&amp;lt; income_sum &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; endl;
/*
        for (int i = 0; i &amp;lt; incomes.size(); i++){

           
             drugi_income = Helpful_Methods::string_to_float_conversion(incomes[i].get_incomes_amount());
             druga_suma += drugi_income;

        }
        cout &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;druga suma wynosi: &quot; &amp;lt;&amp;lt; druga_suma &amp;lt;&amp;lt; endl;
        system(&quot;pause&quot;);
        */

    } else {
        cout &amp;lt;&amp;lt; &quot;No incomes in &quot;;
        Date::display_months_name(st.wMonth);
        Date::display_current_year(st.wYear);
        cout &amp;lt;&amp;lt; &quot;sorry.&quot; &amp;lt;&amp;lt; endl;
    }
    system(&quot;pause&quot;);
    system(&quot;cls&quot;);

    float expense_sum = 0;
    float expense_amount = 0;

    if (expenses.empty() == false) {

        Helpful_Methods::displaying_current_month_and_year_expense();

        cout &amp;lt;&amp;lt; &quot;Do you wish to display all expenses? Answer (y/n)&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; choice;

        if ( answer(choice) == true) {
            display_info_about_expenses(expenses);
        }
        else{
            cout &amp;lt;&amp;lt; &quot;You chose not to display all expenses. Moving forward.&quot; &amp;lt;&amp;lt; endl;
        }
        system(&quot;pause&quot;);
        system(&quot;cls&quot;);

       for (vector &amp;lt;Expense&amp;gt; :: iterator itr = expenses.begin(); itr != expenses.end(); itr++){

            sort_expense(*itr);
            expense_amount = current_month_expense(*itr);
            expense_sum = expense_sum + expense_amount;

        }
    } else {
        cout &amp;lt;&amp;lt; &quot;No expenses in: &quot;;
        Date::display_months_name(st.wMonth);
        Date::display_current_year(st.wYear);
    }

    Helpful_Methods::display_summary_income_expense_current_month();

    cout &amp;lt;&amp;lt; &quot;Income sum is equal:  &quot; &amp;lt;&amp;lt; setprecision(20) &amp;lt;&amp;lt; income_sum &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;Expense sum is equal:  &quot; &amp;lt;&amp;lt; setprecision(20) &amp;lt;&amp;lt; expense_sum &amp;lt;&amp;lt; endl;

    system(&quot;pause&quot;);
    system(&quot;cls&quot;);

    Helpful_Methods::display_summary_income_expense_current_month();
    cout &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; endl;

    cout &amp;lt;&amp;lt; &quot;Do you wish to display difference between incomes and expenses? (y/n)&quot; &amp;lt;&amp;lt; endl;
    cin &amp;gt;&amp;gt; choice;

    if(answer(choice) == true) {

        float income_expense_difference = druga_suma - expense_sum;
        cout &amp;lt;&amp;lt; &quot;Calculating process. Please wait.&quot; &amp;lt;&amp;lt; endl;
        Sleep(3000);

        cout &amp;lt;&amp;lt; &quot;--------------- Difference is equal --------------- &quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;--------------- &quot; &amp;lt;&amp;lt; setprecision(20) &amp;lt;&amp;lt; income_expense_difference &amp;lt;&amp;lt; &quot; --------------- &quot;&amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
        system(&quot;pause&quot;);

    }

    if(answer(choice) == false){

        cout &amp;lt;&amp;lt; &quot;Difference has not been calculated. Goodbye.&quot; &amp;lt;&amp;lt; endl;

    }
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1526/apka-finansowa-nie-widoczna-warto%C5%9B%C4%87-wektora</guid>
<pubDate>Sat, 11 Mar 2023 21:28:49 +0000</pubDate>
</item>
<item>
<title>Funkcja cin.sync()</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1508/funkcja-cin-sync</link>
<description>Cześć, &lt;br /&gt;
&lt;br /&gt;
jestem na etapie seminarium nr 13, gdzie tworzy się książkę adresową po raz pierwszy. Wczytując dane kontaktowe (imię, nazwisko, nr tel, adres, email) nowej osoby korzystam z funkcji loadData() :&lt;br /&gt;
&lt;br /&gt;
[cpp]&lt;br /&gt;
&lt;br /&gt;
string loadData() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string data = &amp;quot;&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;getline(cin, data);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return data;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[/cpp]&lt;br /&gt;
&lt;br /&gt;
Powiedzcie proszę czy powinnam przed getline wstawić funkcję czyszczącą bufor ? I jeśli tak to dlaczego?</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1508/funkcja-cin-sync</guid>
<pubDate>Fri, 24 Feb 2023 15:06:29 +0000</pubDate>
</item>
<item>
<title>zadanie spoj pesel</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1501/zadanie-spoj-pesel</link>
<description>&lt;p&gt;Hej&lt;/p&gt;

&lt;p&gt;Mam pytanie, co z tym kodem jest nie tak? Na pewno coś pomieszałam w tworzeniu zmiennych, bo jak sprawdzam kod tylko ze zmienną int main() to wydaje mi się, że jest on poprawny, jednak jak chcę już go &quot;rozbudować to niestety klops i nie działa poprawnie, a nie potrafię zlokalizować gdzie jest błąd.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;zadanie SPOJ PESEL (link:&amp;nbsp;&lt;a href=&quot;https://pl.spoj.com/problems/JPESEL/&quot; rel=&quot;nofollow&quot;&gt;https://pl.spoj.com/problems/JPESEL/&lt;/a&gt;) konieczność wykorzystania operacji modulo.&lt;/p&gt;

&lt;p&gt;czy mógłby mnie ktoś nakierować gdzie go szukać lub jak go szukać?&lt;/p&gt;

&lt;p&gt;poniżej 2 kody&amp;nbsp;&lt;/p&gt;

&lt;p&gt;1. testowy&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
using namespace std;

int main()
{
    long long pesel;
    cin &amp;gt;&amp;gt; pesel;

    int szyfr[] = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1};
    int suma = 0;

    for(int i = 0; i &amp;lt; 11; i++)
    {
        suma += (pesel % 10) * szyfr[i];
        pesel /= 10;
    }

    if(suma % 10 == 0)
        cout &amp;lt;&amp;lt; &quot;D&quot; &amp;lt;&amp;lt; endl;
    else
        cout &amp;lt;&amp;lt; &quot;N&quot; &amp;lt;&amp;lt; endl;

    return 0;
}
&lt;/pre&gt;

&lt;p&gt;2. teoretycznie docelowy&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;windows.h&amp;gt;

using namespace std;

string sprawdzPesel(string pesel)

{
    long long nrPesel;
    int szyfr[] = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1};
    int suma = 0;
    string wynik;

    for (int i=0; i&amp;lt;11; i++)
    {
       suma += (nrPesel % 10 ) * szyfr[i];
       nrPesel /= 10;
    }

    if (suma % 10 == 0)
        wynik = &quot;D&quot;;
    else
        wynik = &quot;N&quot;;

    return wynik;
}

int main()
{
    int liczbaTestow;
    string pesel;
    cin &amp;gt;&amp;gt; liczbaTestow;

    for (int i = 0; i &amp;lt; liczbaTestow; i++)
    {
        cin &amp;gt;&amp;gt; pesel;
        cout &amp;lt;&amp;lt; sprawdzPesel(pesel) &amp;lt;&amp;lt; endl;
    }

   return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1501/zadanie-spoj-pesel</guid>
<pubDate>Wed, 22 Feb 2023 18:19:51 +0000</pubDate>
</item>
<item>
<title>BudgetAPP - problem ze zmienieniem hasła w pliku</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1466/budgetapp-problem-ze-zmienieniem-has%C5%82a-w-pliku</link>
<description>&lt;p&gt;Serwus,&lt;/p&gt;

&lt;p&gt;jestem na finiszu najprostszej części aplikacji budżetowej. Kod śmiga niczym dziadek po niebieskich pigułkach, ale nie mogę dojść do poprawnego zmienienia hasła w pliku xml. W czym problem. Dzięki poniższemu kodowi ( czy tam kodu, polska język trudna) jestem w stanie zmienić hasło tylko dla pierwszego Usera, a nie dla tego dla którego się loguję. W momencie kiedy odkomentuję zakomentowane części, wywala mi błąd :&lt;/p&gt;

&lt;p&gt;error: could not convert 'users_id.std::__cxx11::basic_string&amp;lt;char&amp;gt;::operator=(((int)((char)((User_Manager*)this)-&amp;gt;User_Manager::logged_users_id)))' from 'std::__cxx11::basic_string&amp;lt;char&amp;gt;' to 'bool'|&lt;/p&gt;

&lt;p&gt;I teraz tak -&lt;/p&gt;

&lt;p&gt;próbowałem konwersji string&amp;nbsp; na int, żeby program wiedział dla którego usera ma zmienić hasło, ale tu widzę że jednak nie może mi znaleźć ponieważ metoda xml.GetData() (używana jako users_id) jest rodzaju bool.&lt;/p&gt;

&lt;p&gt;Pytanie - w jaki sposób dotrzeć do ID'ka?&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
void User_Manager::change_users_password() {

    CMarkup xml;
    xml.Load(&quot;users.xml&quot;);
    string users_id = &quot;&quot;;
    for (unsigned int i = 0; i &amp;lt; users.size(); i++) {

        if(users[i].get_users_id() == logged_users_id ) {

            cout &amp;lt;&amp;lt; &quot;Welcome, &quot; &amp;lt;&amp;lt; users[i].get_users_name() &amp;lt;&amp;lt; endl;

            string new_password = &quot;&quot;;
            cout &amp;lt;&amp;lt; &quot;Enter new password: &quot;;
            new_password = Helpful_Methods::load_line();

            xml.FindElem(&quot;Users&quot;);
            xml.IntoElem(); // stepping into Users
            xml.FindElem(&quot;User&quot;);
            xml.IntoElem(); // stepping into User
            xml.FindElem(&quot;ID&quot;);
           // users_id = xml.GetData();
            //if(users_id = logged_users_id){
            xml.FindElem(&quot;Password&quot;);
            xml.SetData(new_password);
            xml.Save(&quot;users.xml&quot;);
          //  }
          //  else
          //  xml.OutOfElem();

            users[i].set_users_password(new_password);

            cout &amp;lt;&amp;lt; &quot;Password changed successfully.&quot; &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;
            Sleep(1000);
            break;

        }
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1466/budgetapp-problem-ze-zmienieniem-has%C5%82a-w-pliku</guid>
<pubDate>Sat, 18 Feb 2023 11:13:50 +0000</pubDate>
</item>
<item>
<title>SPOJ PIRAMIDKA</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1448/spoj-piramidka</link>
<description>Cześć!&lt;br /&gt;
&lt;br /&gt;
Rozwiązując zadanie na spoju (&lt;a href=&quot;https://pl.spoj.com/problems/AL_28_01/&quot; rel=&quot;nofollow&quot;&gt;https://pl.spoj.com/problems/AL_28_01/&lt;/a&gt; ) zauważyłam, że mam braki w zrozumieniu zmiennej string. Utworzyłam zmienną string dots, składającą się wyłacznie z kropek. W prawidłowo rozwiązanym kodzie dodawałam do siebie kolejno kropki w pętli, spójrzcie :&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int length;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string text;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; length &amp;gt;&amp;gt; text;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string dots = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dots += '.';&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int i = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int half = length / 2;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(i &amp;lt;= half) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dots[half + i] = text[half + i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dots[half - i] = text[half - i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; dots &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Moje pytanie: dlaczego poniższe zapełnienie stringa kropkami nie jest prawidłowe:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;for(int i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dots[i] = '.';&lt;br /&gt;
&lt;br /&gt;
To zadanie nie jest wyzwaniem, więc mam nadzieję, ze mogłam wstawić kod w całości :)</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1448/spoj-piramidka</guid>
<pubDate>Thu, 16 Feb 2023 10:48:02 +0000</pubDate>
</item>
<item>
<title>użycie pętli for</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1399/u%C5%BCycie-p%C4%99tli-for</link>
<description>&lt;p&gt;hej, mam taki problem,&lt;/p&gt;

&lt;p&gt;w zadaniu obliczającym sumę&amp;nbsp;narastającą nie mogę pozbyć się poniższego problemu, mianowicie gdy uruchamiamy program i naszym pierwszy wyborem jest liczba 1 to z automatu w wyniku widnieje liczba 2 a nie 1 .&lt;/p&gt;

&lt;p&gt;dalej program działa już poprawnie i poprawnie liczy narastające liczby, tylko w pierwszym wyborze zawsze dodaje mi +1 nie wiem jak z tego wybrnąć:?&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int main()
{
int liczba, suma=0;


for (int liczba=(1); liczba=(suma+=liczba); liczba=0)
{

    cout&amp;lt;&amp;lt;&quot;Podaj liczbe: &quot;;
    cin &amp;gt;&amp;gt; liczba;
    suma+=liczba;
    cout &amp;lt;&amp;lt; suma &amp;lt;&amp;lt; endl;
}

{
cout &amp;lt;&amp;lt; &quot;0 zrywa petle!&quot;;

}

return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1399/u%C5%BCycie-p%C4%99tli-for</guid>
<pubDate>Tue, 31 Jan 2023 22:18:13 +0000</pubDate>
</item>
<item>
<title>Książka adresowa - konwersja pliku txt</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1389/ksi%C4%85%C5%BCka-adresowa-konwersja-pliku-txt</link>
<description>&lt;p&gt;Czołem&lt;/p&gt;

&lt;p&gt;Mam problem&amp;nbsp; nie tyle z konwersją&amp;nbsp;pliku co z odczytaniem&amp;nbsp;pliku i poprawnym zapisaniem danych do vectora aby później przekonwertować do nowej postaci w pliku *.txt. Obecnie nie wczytuje wszystkich adresatów a tylko ostatniego.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;windows.h&amp;gt;

using namespace std;

struct Contact {
    int id;
    string name, surname, phoneNum, email, adress;
};
void saveAfterConversion(vector&amp;lt;Contact&amp;gt; &amp;amp;people) {

    vector &amp;lt;Contact&amp;gt; ::iterator itr = people.begin();
    fstream fileAfterConversion;
    fileAfterConversion.open(&quot;adressbook_new_format.txt&quot;, ios::out | ios::trunc);
    if (fileAfterConversion.good()) {
        for (itr; itr != people.end(); itr++) {
            fileAfterConversion &amp;lt;&amp;lt; itr-&amp;gt;id &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; itr-&amp;gt;name &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; itr-&amp;gt;surname &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; itr-&amp;gt;phoneNum &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; itr-&amp;gt;email &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; itr-&amp;gt;adress &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;
        }
        fileAfterConversion.close();
    }
}
int main () {

    vector &amp;lt;Contact&amp;gt; people;
    Contact person;
    string filename;
    string personalData = &quot;&quot;;
    int numLine = 1;
    int personCount = 1;

    cout &amp;lt;&amp;lt; &quot;Input name of file.txt to convert: &quot; &amp;lt;&amp;lt; endl;
    cin &amp;gt;&amp;gt; filename;
    fstream file;
    file.open(filename, ios::in);

    if (file.good() == false ) {
        return personCount = 0;
        cout &amp;lt;&amp;lt; &quot;Could not open file: adress book&quot; &amp;lt;&amp;lt; endl;
    } else {
        while(getline(file, personalData)) {

            switch(numLine) {
            case 1:
                person.id = stoi(personalData);
                break;
            case 2:
                person.name = personalData;
                break;
            case 3:
                person.surname = personalData;
                break;
            case 4:
                person.phoneNum = personalData;
                break;
            case 5:
                person.email = personalData;
                break;
            case 6:
                person.adress = personalData;
                break;
            }
            if (numLine == 6) {
                numLine = 0;
                personCount++;
            }
            numLine ++;
        }
        people.push_back(person);
    }
    file.close();
    cout &amp;lt;&amp;lt; &quot;....CHECKING.....&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;People in adress book : &quot; &amp;lt;&amp;lt; people.size() &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt;&quot;.........................&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;----- DISPLAYING ALL CONTACTS ----&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;==================================&quot; &amp;lt;&amp;lt; endl;

    for(int i = 0; i &amp;lt; people.size(); i++) {
        cout &amp;lt;&amp;lt; &quot;ID number: &quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; people[i].id &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Name: &quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; people[i].name &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Surname: &quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; people[i].surname &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Phone number: &quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; people[i].phoneNum &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Email: &quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; people[i].email &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Adress: &quot; &amp;lt;&amp;lt; &quot;\t&quot; &amp;lt;&amp;lt; people[i].adress &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;- - - - - - - - - - - - - - - - &quot; &amp;lt;&amp;lt; endl;
    }

    saveAfterConversion(people);

    return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1389/ksi%C4%85%C5%BCka-adresowa-konwersja-pliku-txt</guid>
<pubDate>Thu, 26 Jan 2023 18:31:13 +0000</pubDate>
</item>
<item>
<title>Brak pojawiającego się pliku .txt po zapisie</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1378/brak-pojawiaj%C4%85cego-si%C4%99-pliku-txt-po-zapisie</link>
<description>&lt;p&gt;Witam,&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Mam problem z brakiem pojawiającego się pliku .txt w folderze z programem. U innego użytkownika wszystko działa.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Spotkaliście się może z takim zagadnieniem ? CodeBlocks 20.03 - Windows 11&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Program który u innych zapisuje i tworzy plik .txt&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;fstream&amp;gt;

using namespace std;
fstream file;

struct Person {

    int id = 0;
    int contactID;
    string name, surname, phone_number, adress, email;

};

string load_line() {

    string input;
    cin.sync();
    getline(cin, input);
    return input;
}

int insert_persons_data(vector &amp;lt;Person&amp;gt; &amp;amp;people,int persons_amount) {

    Person new_persons;

    string name, surname, phone_number, email, adress;

    cout &amp;lt;&amp;lt; &quot;insert name:&quot; &amp;lt;&amp;lt; endl;
    new_persons.name = load_line();
    cout &amp;lt;&amp;lt; &quot;insert surname: &quot; &amp;lt;&amp;lt; endl;
    new_persons.surname = load_line();
    cout &amp;lt;&amp;lt; &quot;insert phone number: &quot; &amp;lt;&amp;lt; endl;
    new_persons.phone_number = load_line();
    cout &amp;lt;&amp;lt; &quot;insert adress: &quot; &amp;lt;&amp;lt; endl;
    new_persons.adress = load_line();
    cout &amp;lt;&amp;lt; &quot;insert email: &quot; &amp;lt;&amp;lt; endl;
    new_persons.email = load_line();
    new_persons.id = persons_amount + 1;

    people.push_back(new_persons);

    fstream file;
    file.open ( &quot;adres.txt&quot;, ios::out | ios::app );

    if (file.good())
    {
    new_persons.id = persons_amount + 1;
    file &amp;lt;&amp;lt; people[persons_amount].id &amp;lt;&amp;lt; &quot;|&quot;;
    file &amp;lt;&amp;lt; people[persons_amount].name&amp;lt;&amp;lt; &quot;|&quot;;
    file &amp;lt;&amp;lt; people[persons_amount].surname &amp;lt;&amp;lt; &quot;|&quot;;
    file &amp;lt;&amp;lt; people[persons_amount].phone_number&amp;lt;&amp;lt; &quot;|&quot;;
    file &amp;lt;&amp;lt; people[persons_amount].email &amp;lt;&amp;lt; &quot;|&quot;;
    file &amp;lt;&amp;lt; people[persons_amount].adress &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;
    file.close();
    }
    else
    {
        cout &amp;lt;&amp;lt; &quot;couldnt open file&quot; &amp;lt;&amp;lt; endl;
    }

    return persons_amount +1;
}

void showing_people_by_name (vector &amp;lt;Person&amp;gt; &amp;amp;people, int persons_amount) {

    string name;

    cout &amp;lt;&amp;lt; &quot;enter surname to show friends with that name: &quot; &amp;lt;&amp;lt; endl;
    cin &amp;gt;&amp;gt; name;

    int i = 0;
    int name_number = 0;

    while (i &amp;lt; persons_amount) {
        if (people[i].name == name) {
            cout &amp;lt;&amp;lt; &quot;Friend's ID &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].id &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's name &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].name &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's surname &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].surname &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's phone number &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].phone_number &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's e-mail &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].email &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's adress &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt;  people[i].adress &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; endl;
            name_number++;
        }
        i++;
    }
    if (name_number == 0)
        cout &amp;lt;&amp;lt; &quot;no person with that name!&quot; &amp;lt;&amp;lt; endl;
}


void showing_people_by_surname (vector &amp;lt;Person&amp;gt; &amp;amp;people, int persons_amount) {

    string surname;

    cout &amp;lt;&amp;lt; &quot;enter surname to show friends with that name: &quot; &amp;lt;&amp;lt; endl;
    cin &amp;gt;&amp;gt; surname;

    int i = 0;
    int surname_number = 0;

    while (i &amp;lt; persons_amount) {
        if (people[i].surname == surname) {
            cout &amp;lt;&amp;lt; &quot;Friend's ID &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].id &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's name &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].name &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's surname &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].surname &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's phone number &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].phone_number &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's e-mail &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt; people[i].email &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Friend's adress &quot; &amp;lt;&amp;lt; &quot; --------- &quot; &amp;lt;&amp;lt;  people[i].adress &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; endl;
            surname_number++;
        }
        i++;
    }
    if (surname_number == 0)
        cout &amp;lt;&amp;lt; &quot;no person with that surname!&quot; &amp;lt;&amp;lt; endl;
}


void every_single_person(vector &amp;lt;Person&amp;gt; &amp;amp;people) {

    int people_amount = people.size();
    for (int i = 0; i &amp;lt; people_amount; i++) {
        cout &amp;lt;&amp;lt; people[i].id &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; people[i].name &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; people[i].surname &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; people[i].phone_number &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; people[i].email &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; people[i].adress &amp;lt;&amp;lt; endl;
    }
}
/*
void modyfing_person(vector &amp;lt;Person&amp;gt; &amp;amp;people, int persons_amount, int persons_id) {

    Person new_persons;
    string name, surname, phone_number, email, adress;

    char choice;

    while(){
    cout &amp;lt;&amp;lt; &quot;Choose whhich feature you want to modify: &quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;1. Name&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;2. Surname&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;3. Phone number&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;4. Email&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;5. Adress&quot; &amp;lt;&amp;lt; endl;

    switch (choice) {

    case '1': {
        cout &amp;lt;&amp;lt; &quot;set new name&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; name;
        for (int i = 0; i &amp;lt; persons_amount; i++){

        if(people[i].id == persons_id )
            people[i].name = name;
            cout &amp;lt;&amp;lt; &quot;Name set correctly&quot; &amp;lt;&amp;lt; endl;
        }
        break;
    }
    case '2': {
        cout &amp;lt;&amp;lt; &quot;set new surname&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; surname;
        for (int i = 0; i &amp;lt; persons_amount; i++){

        if(people[i].id == persons_id )
            people[i].surname = surname;
            cout &amp;lt;&amp;lt; &quot;Surname set correctly&quot; &amp;lt;&amp;lt; endl;
        }
        break;
    }

    case '3': {
        cout &amp;lt;&amp;lt; &quot;set new phone number&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; phone_number;
        for (int i = 0; i &amp;lt; persons_amount; i++){

        if(people[i].id == persons_id )
            people[i].phone_number = phone_number;
            cout &amp;lt;&amp;lt; &quot;Name set correctly&quot; &amp;lt;&amp;lt; endl;
        }
        break;
    }

    case '4': {
        cout &amp;lt;&amp;lt; &quot;set new email&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; email;
        for (int i = 0; i &amp;lt; persons_amount; i++){

        if(people[i].id == persons_id )
            people[i].email = email;
            cout &amp;lt;&amp;lt; &quot;Email set correctly&quot; &amp;lt;&amp;lt; endl;
        }
        break;
    }

    case '5': {
        cout &amp;lt;&amp;lt; &quot;set new adress&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; adress;
        for (int i = 0; i &amp;lt; persons_amount; i++){

        if(people[i].id == persons_id )
            people[i].adress = adress;
            cout &amp;lt;&amp;lt; &quot;Adress set correctly&quot; &amp;lt;&amp;lt; endl;
        }
        break;
    }

    }
    }
}
*/
/*
int loading_from_file(vector &amp;lt;Person&amp;gt; &amp;amp;people ) {

    int persons_amount = 0;
    string line;
    int line_number = 1;


    file.open(&quot;ksiazka1.txt&quot;, ios :: in);

    if(file.good() == false) {
        file.open ( &quot;ksiazka1.txt&quot;, ios::out );
        file.close();
    }

    else {
        while (getline(file, line)) {
            switch(line_number) {
            case 1:
                people[persons_amount].id = atoi(line.c_str());
                break;
            case 2:
                people[persons_amount].name;
                break;
            case 3:
                people[persons_amount].surname;
                break;
            case 4:
                people[persons_amount].phone_number;
                break;
            case 5:
                people[persons_amount].email;
                break;
            case 6:
                people[persons_amount].adress;
                break;
            }
            if (line_number == 2 ) {
                line_number = 0;
                persons_amount++;
            }
            line_number++;
        }
    }
    file.close();

    return persons_amount ;
}
*/
void ImportAllContacts (vector &amp;lt;Person&amp;gt;&amp;amp; people)
{
    Person individualPerson;
    string personalData{};
    fstream DatabaseContact;
    DatabaseContact.open(&quot;adres.txt&quot;, ios :: in);

    if (DatabaseContact.good())
    {
        while(getline(DatabaseContact,personalData))
        {
            string individualPersonalData{};
            int singlePersonNumber = 1;

            for (size_t index{}; index &amp;lt; personalData.length(); ++index)
            {
                if (personalData[index] != '|')
                {
                    individualPersonalData += personalData[index];
                }
                else
                {
                    switch(singlePersonNumber)
                    {
                    case 1:
                        individualPerson.id = stoi(individualPersonalData);
                        break;
                    case 2:
                        individualPerson.name = individualPersonalData;
                        break;
                    case 3:
                        individualPerson.surname = individualPersonalData;
                        break;
                    case 4:
                        individualPerson.phone_number = individualPersonalData;
                        break;
                    case 5:
                        individualPerson.email = individualPersonalData;
                        break;
                    case 6:
                        individualPerson.adress = individualPersonalData;
                        break;
                    }
                    individualPersonalData = &quot;&quot;;
                    singlePersonNumber++;
                }
            }
            people.push_back(individualPerson);
        }
    }
    DatabaseContact.close();
}

bool fileExists (const string&amp;amp; fileName)
{
    fstream DatabaseContact;
    DatabaseContact.open(fileName.c_str(), ios::in);
    if ( DatabaseContact.is_open() )
    {
        DatabaseContact.close();
        return true;
    }
    DatabaseContact.close();
    return false;
}

int main() {
    char choice;
    int persons_amount = 0;
    vector &amp;lt;Person&amp;gt; people;

    ImportAllContacts(people);

    while (true) {

        system(&quot;cls&quot;);
        cout &amp;lt;&amp;lt; &quot;1. Add friend&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;2. Search by name&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;3. Search by surname&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;4. Show my friends list&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;5. Edit user&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;6. Delete user&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;7. End program&quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; choice;


        switch (choice) {

        case '1' : {
            persons_amount = insert_persons_data (people, persons_amount);
            system(&quot;pause&quot;);
            break;
        }
        case '2' : {
            showing_people_by_name (people,persons_amount);
            system(&quot;pause&quot;);
            break;
        }
        case '3' : {
            showing_people_by_surname(people, persons_amount);
            system(&quot;pause&quot;);
            break;
        }
        case '4' : {
            every_single_person(people);
            system(&quot;pause&quot;);
            break;
        }
        case '5': {
           // modyfing_person (people, persons_amount, users_id) ;
        }
        case '6': {
            ;
        }
        case '7': {
            exit(0);
        }
        default: {
            cout &amp;lt;&amp;lt; &quot;try that again &quot; &amp;lt;&amp;lt; endl;
            system(&quot;pause&quot;);
        }
        }
    }

    return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1378/brak-pojawiaj%C4%85cego-si%C4%99-pliku-txt-po-zapisie</guid>
<pubDate>Fri, 20 Jan 2023 09:13:16 +0000</pubDate>
</item>
<item>
<title>SPOJ - przekroczono limit czasu</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1325/spoj-przekroczono-limit-czasu</link>
<description>Cześć, &lt;br /&gt;
&lt;br /&gt;
Rozwiązuje właśnie zadanie szpieg na spoju i program sprawdziłem w ideone - działa (przynajmniej dla podanych danych wejściowych, wczytuje i zapisuje do pliku ale na spoju sędzia zwraca mi &amp;quot;przekroczono limit czasu&amp;quot;. Co to właściwie oznacza? Czy to może być problem ze zbyt mało wydajnym algorytmem? Ma ktoś pomysł na jakieś warunki skrajne które bywają problematyczne w tego typu zadaniach? Nie wiem czy wrzucać tutaj kod więc na razie nie wrzucam, gdyby był potrzebny załączę w komentarzu. &lt;br /&gt;
&lt;br /&gt;
Poniżej wrzucam link do zadania na spoj:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://pl.spoj.com/problems/MWP2_1E/&quot; rel=&quot;nofollow&quot;&gt;https://pl.spoj.com/problems/MWP2_1E/&lt;/a&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1325/spoj-przekroczono-limit-czasu</guid>
<pubDate>Thu, 12 Jan 2023 21:46:33 +0000</pubDate>
</item>
<item>
<title>Ksiazka adresowa</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1307/ksiazka-adresowa</link>
<description>&lt;p&gt;Hej,&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Problem z zapisem/ odczytem z pliku. Dla structur działa - przy wektorach już nie.&lt;/p&gt;

&lt;p&gt;Poniżej program.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;thread&amp;gt;
#include &amp;lt;chrono&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

struct Adresat
{
    int id = 0;
    string imie, nazwisko, numer_telefonu, adres_email, adres_zamieszkania;

};

string wczytajLinie()
{
    string wejscie;
    cin.sync();
    getline(cin, wejscie);
    return wejscie;
}

int dodanieAdresata (vector &amp;lt;Adresat&amp;gt; &amp;amp;adresaci, int iloscAdresatow)
{
    Adresat Nowa_osoba;

    string imie, nazwisko, numer_telefonu, adres_email, adres_zamieszkania;

    cout &amp;lt;&amp;lt; &quot;Podaj imie: &quot;;
    Nowa_osoba.imie = wczytajLinie();
    cout &amp;lt;&amp;lt; &quot;Podaj nazwisko: &quot;;
    Nowa_osoba.nazwisko = wczytajLinie();
    cout &amp;lt;&amp;lt; &quot;Podaj numer telefonu: &quot;;
    Nowa_osoba.numer_telefonu = wczytajLinie();
    cout &amp;lt;&amp;lt; &quot;Podaj adres email: &quot;;
    Nowa_osoba.adres_email = wczytajLinie();
    cout &amp;lt;&amp;lt; &quot;Podaj adres zamieszkania: &quot;;
    Nowa_osoba.adres_zamieszkania = wczytajLinie();

    Nowa_osoba.id = iloscAdresatow + 1;

    adresaci.push_back(Nowa_osoba);

    fstream plik;
    plik.open(&quot;ksiazki.txt&quot;, ios::out | ios::app);

    if (plik.good() == true)
    {
        plik &amp;lt;&amp;lt; adresaci[iloscAdresatow].id &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[iloscAdresatow].imie &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[iloscAdresatow].nazwisko &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[iloscAdresatow].numer_telefonu &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[iloscAdresatow].adres_email &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[iloscAdresatow].adres_zamieszkania &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;
        plik.close();
    }

    cout &amp;lt;&amp;lt; &quot;Dodano adresata&quot; &amp;lt;&amp;lt; endl;


    Sleep(1000);
    return iloscAdresatow + 1;
}


int wyszukajPoImieniu (vector &amp;lt;Adresat&amp;gt; adresaci, int iloscAdresatow)
{
    string imie;
    cout &amp;lt;&amp;lt;&quot;Podaj imie po ktorym chcesz wyszukac: &quot;;
    cin &amp;gt;&amp;gt; imie;

    for (int i=0; i &amp;lt; iloscAdresatow; i++)
    {
        if (adresaci[i].imie == imie)
        {
            cout &amp;lt;&amp;lt; adresaci[i].id &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].imie &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].nazwisko &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].numer_telefonu &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].adres_email &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].adres_zamieszkania &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; endl;
        }
        else
        {
            cout &amp;lt;&amp;lt; &quot;Brak takiego imienia&quot; &amp;lt;&amp;lt; endl;
        }

    }
    system(&quot;pause&quot;);
    return 0;
}


int wyszukajPoNazwisku (vector &amp;lt;Adresat&amp;gt; adresaci, int iloscAdresatow)
{
    string nazwisko;
    cout &amp;lt;&amp;lt;&quot;Podaj nazwisko po ktorym chcesz wyszukac: &quot;;
    cin &amp;gt;&amp;gt; nazwisko;

    for (int i=0; i &amp;lt; iloscAdresatow; i++)
    {
        if (adresaci[i].nazwisko == nazwisko)
        {
            cout &amp;lt;&amp;lt; adresaci[i].id &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].imie &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].nazwisko &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].numer_telefonu &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].adres_email &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].adres_zamieszkania &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; endl;
        }
        else
        {
            cout &amp;lt;&amp;lt; &quot;Brak takiego nazwiska&quot; &amp;lt;&amp;lt; endl;
        }
    }
    system(&quot;pause&quot;);
    return 0;
}


int wyswietlWszystkichAdresatowZKsiazkiAdresowej (vector &amp;lt;Adresat&amp;gt; adresaci, int iloscAdresatow)
{

    for (int i=0; i &amp;lt; iloscAdresatow; i++)
    {
        cout &amp;lt;&amp;lt; adresaci[i].id &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].imie &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].nazwisko &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].numer_telefonu &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].adres_email &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; adresaci[i].adres_zamieszkania &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; endl;
    }
    system(&quot;pause&quot;);
    return 0;
}


int wyswietlAdresatowZapisanychWPliku (vector &amp;lt;Adresat&amp;gt; adresaci)
{
    string linia, imie, nazwisko, numer_telefonu, adres_email, adres_zamieszkania;
    int numer_lini = 1;
    int ilosc_adresatow_w_pliku = 0;

    fstream plik;
    plik.open(&quot;ksiazki.txt&quot;, ios::in);

    if (plik.good() == true)
    {
        while(getline(plik,linia))
        {
            switch (numer_lini)
            {
            case 1:
                adresaci[ilosc_adresatow_w_pliku].id = atoi(linia.c_str());
                break;
            case 2:
                adresaci[ilosc_adresatow_w_pliku].imie = linia;
                break;
            case 3:
                adresaci[ilosc_adresatow_w_pliku].nazwisko = linia;
                break;
            case 4:
                adresaci[ilosc_adresatow_w_pliku].numer_telefonu = linia;
                break;
            case 5:
                adresaci[ilosc_adresatow_w_pliku].adres_email = linia;
                break;
            case 6:
                adresaci[ilosc_adresatow_w_pliku].adres_zamieszkania = linia;
                break;
            }
            if (numer_lini &amp;gt;= 6)
            {
                numer_lini = 1;
                ilosc_adresatow_w_pliku++;
            }
            else
            {
                numer_lini++;
            }
        }
        plik.close();
    }
    return ilosc_adresatow_w_pliku;
}


int main()
{
    vector &amp;lt;Adresat&amp;gt; adresaci;
    int iloscAdresatow = 0;
    int id = 0;

    // iloscAdresatow = wyswietlAdresatowZapisanychWPliku(adresaci);

    char wybor;
    while(true)
    {
        system(&quot;cls&quot;);
        cout &amp;lt;&amp;lt; &quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt;Ksiazka adresowa&amp;lt;&amp;lt;&amp;lt;&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;1. Dodaj adresata&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;2. Wyszkuaj po imieniu&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;3. Wyszukaj po nazwisku&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;4. Wyswietl wszystkich adresatowe&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;5. Usun adresata&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;9. Zakoncz program&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;Twoj wybor: &quot; &amp;lt;&amp;lt; endl;
        cin &amp;gt;&amp;gt; wybor;


        switch(wybor)
        {
        case '1':
            iloscAdresatow = dodanieAdresata(adresaci, iloscAdresatow);
            break;
        case '2':
            wyszukajPoImieniu(adresaci, iloscAdresatow);
            break;
        case '3':
            wyszukajPoNazwisku(adresaci, iloscAdresatow);
            break;
        case '4':
            wyswietlWszystkichAdresatowZKsiazkiAdresowej(adresaci, iloscAdresatow);
            break;
        case '9':
            cout &amp;lt;&amp;lt; &quot;Koniec programu !!&quot; &amp;lt;&amp;lt; endl;
            exit(0);
            break;
        }
    }
    return 0;
}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1307/ksiazka-adresowa</guid>
<pubDate>Mon, 09 Jan 2023 18:33:20 +0000</pubDate>
</item>
<item>
<title>Brak zapętlenia</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1296/brak-zap%C4%99tlenia</link>
<description>&lt;p&gt;Hej,&lt;/p&gt;

&lt;p&gt;dlaczego program&amp;nbsp; wykonuje się raz a póżniej nie zapętla?&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

string odszyfrujGG(string szyfr) {
    int iloscZnakow = szyfr.length();
    int j;
    int k = 0;
    int liczbaASCII;
    string* ciag = new string [10];

    for(int i = 0; i &amp;lt; iloscZnakow; i++) {
        liczbaASCII = 0;
        j = i + 1;
        for(i; i &amp;lt;= j; i++) {
            if(i != j){
                switch(szyfr[i]) {
                case 'A':
                        liczbaASCII;
                    break;
                case 'B':
                        liczbaASCII += 1;
                    break;
                case 'C':
                        liczbaASCII += 2;
                    break;
                case 'D':
                        liczbaASCII += 3;
                    break;
                case 'E':
                        liczbaASCII += 4;
                    break;
                case 'F':
                        liczbaASCII += 5;
                    break;
                case 'G':
                        liczbaASCII += 6;
                    break;
                case 'H':
                        liczbaASCII += 7;
                    break;
                case 'I':
                        liczbaASCII += 8;
                    break;
                case 'J':
                        liczbaASCII += 9;
                    break;
                case 'K':
                        liczbaASCII += 10;
                    break;
                case 'L':
                        liczbaASCII += 11;
                    break;
                case 'M':
                        liczbaASCII += 12;
                    break;
                case 'N':
                        liczbaASCII += 13;
                    break;
                case 'O':
                        liczbaASCII += 14;
                    break;
                case 'P':
                        liczbaASCII += 15;
                    break;
                }
            }
            else {
                switch(szyfr[i]) {
                case 'A':
                        liczbaASCII += 0;
                    break;
                case 'B':
                        liczbaASCII += 16;
                    break;
                case 'C':
                        liczbaASCII += 32;
                    break;
                case 'D':
                        liczbaASCII += 48;
                    break;
                case 'E':
                        liczbaASCII += 64;
                    break;
                case 'F':
                        liczbaASCII += 80;
                    break;
                case 'G':
                        liczbaASCII += 96;
                    break;
                case 'H':
                        liczbaASCII += 112;
                    break;
                case 'I':
                        liczbaASCII += 128;
                    break;
                case 'J':
                        liczbaASCII += 144;
                    break;
                case 'K':
                        liczbaASCII += 160;
                    break;
                case 'L':
                        liczbaASCII += 176;
                    break;
                case 'M':
                        liczbaASCII += 192;
                    break;
                case 'N':
                        liczbaASCII += 208;
                    break;
                case 'O':
                        liczbaASCII += 224;
                    break;
                case 'P':
                        liczbaASCII += 240;
                    break;
                }
            }
        }
    i--;
    ciag[k] = liczbaASCII;
    k++;
    }
    for(int i = 0; i &amp;lt; 10; i++) {
        cout &amp;lt;&amp;lt; ciag[i];
    }
}
int main()
{
    string szyfr;
    while (true) {
        cin &amp;gt;&amp;gt; szyfr;
        odszyfrujGG(szyfr);
        cout &amp;lt;&amp;lt; endl;
    }
    return 0;
}
&lt;/pre&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1296/brak-zap%C4%99tlenia</guid>
<pubDate>Tue, 27 Dec 2022 14:02:36 +0000</pubDate>
</item>
<item>
<title>Książka Adresowa</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1273/ksi%C4%85%C5%BCka-adresowa</link>
<description>&lt;p&gt;Cześć. Mógłby mnie ktoś naprowadzić jak napisać funkcję odpowiadającą za odczyt pliku txt?&lt;/p&gt;

&lt;p&gt;Wg. ,mojego rozumowanie najpierw powinien odczytać całą linię tekstu, potem podzielić ją na oddzielne (stringi).&lt;/p&gt;

&lt;p&gt;Następnie każdy string przypisać do struktury, a na koniec strukturę do vektora.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;conio.h&amp;gt;
#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;
struct Dane {
    string imie;
    string nazwisko;
    string nrTel;
    string adresEmail;
    string korespondecja;
    int numerIdUzytkownika;
};

string pobierzLinie() {
    string linia;
    cin.sync();
    getline(cin,linia);

    return linia;
}

int dodajUzytkownika(struct Dane * uzytkownicy, int iloscUzytkownikow) {

    system(&quot;CLS&quot;);
    fstream plik;
    plik.open(&quot;adresacja.txt&quot;, ios::out | ios::app);
    iloscUzytkownikow = iloscUzytkownikow + 1;

    cout &amp;lt;&amp;lt; &quot;Podaj imie nowego Uzytkownika : &quot; &amp;lt;&amp;lt; endl;
    (*uzytkownicy).imie = pobierzLinie();

    cout &amp;lt;&amp;lt; &quot;Podaj nazwisko nowego Uzytkownika : &quot; &amp;lt;&amp;lt; endl;
    (*uzytkownicy).nazwisko = pobierzLinie();

    cout &amp;lt;&amp;lt; &quot;Podaj nr Tel nowego Uzytkownika : &quot; &amp;lt;&amp;lt; endl;
    (*uzytkownicy).nrTel = pobierzLinie();

    cout &amp;lt;&amp;lt; &quot;Podaj adres Email nowego Uzytkownika : &quot; &amp;lt;&amp;lt; endl;
    (*uzytkownicy).adresEmail = pobierzLinie();

    cout &amp;lt;&amp;lt; &quot;Podaj adres zamieszkania nowego Uzytkownika : &quot; &amp;lt;&amp;lt; endl;
    (*uzytkownicy).korespondecja = pobierzLinie();

    (*uzytkownicy).numerIdUzytkownika = iloscUzytkownikow;

    plik &amp;lt;&amp;lt; iloscUzytkownikow &amp;lt;&amp;lt; &quot;|&quot; ;
    plik &amp;lt;&amp;lt; (*uzytkownicy).imie &amp;lt;&amp;lt; &quot;|&quot; ;
    plik &amp;lt;&amp;lt; (*uzytkownicy).nazwisko &amp;lt;&amp;lt; &quot;|&quot; ;
    plik &amp;lt;&amp;lt; (*uzytkownicy).nrTel &amp;lt;&amp;lt; &quot;|&quot; ;
    plik &amp;lt;&amp;lt; (*uzytkownicy).adresEmail &amp;lt;&amp;lt; &quot;|&quot; ;
    plik &amp;lt;&amp;lt; (*uzytkownicy).korespondecja &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;
    plik.close();

    cout &amp;lt;&amp;lt; &quot;Uzytkownik zostal dodany pomyslnie !&quot; &amp;lt;&amp;lt; endl;
    Sleep(1500);
    return iloscUzytkownikow;

}

void wyswietlWszystkichUzytkownikow(vector &amp;lt;Dane&amp;gt; osoby) {

    system(&quot;CLS&quot;);
vector &amp;lt;Dane&amp;gt; :: iterator it;
    for(it = osoby.begin() ; it &amp;lt; osoby.end() ; it++) {
        cout &amp;lt;&amp;lt; endl;

            cout &amp;lt;&amp;lt; &quot;Id: &quot; &amp;lt;&amp;lt; (*it).numerIdUzytkownika &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Imie: &quot; &amp;lt;&amp;lt; (*it).imie &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Nazwisko: &quot; &amp;lt;&amp;lt; (*it).nazwisko &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Nr Tel: &quot; &amp;lt;&amp;lt; (*it).nrTel &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Adres Email: &quot; &amp;lt;&amp;lt; (*it).adresEmail &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Adres Zam: &quot; &amp;lt;&amp;lt; (*it).korespondecja &amp;lt;&amp;lt; endl;
    }
    cout &amp;lt;&amp;lt; endl;
    system(&quot;PAUSE&quot;);
}

void wyszukajUzytkownikaPoImieniu(vector &amp;lt;Dane&amp;gt; osoby) {

    system(&quot;CLS&quot;);
    string szukaneImie;
     vector &amp;lt;Dane&amp;gt; :: iterator it;

    cout &amp;lt;&amp;lt; &quot;Podaj Imie ktore chcesz wyszukac :&quot; &amp;lt;&amp;lt; endl;
    cin &amp;gt;&amp;gt; szukaneImie;

    for( it = osoby.begin() ; it != osoby.end() ; ++it) {

        if((*it).imie == szukaneImie) {
            cout &amp;lt;&amp;lt; &quot;Id: &quot; &amp;lt;&amp;lt; (*it).numerIdUzytkownika &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Imie: &quot; &amp;lt;&amp;lt; (*it).imie &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Nazwisko: &quot; &amp;lt;&amp;lt; (*it).nazwisko &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Nr Tel: &quot; &amp;lt;&amp;lt; (*it).nrTel &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Adres Email: &quot; &amp;lt;&amp;lt; (*it).adresEmail &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Adres Zam: &quot; &amp;lt;&amp;lt; (*it).korespondecja &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; endl;
        }
    }
    system(&quot;PAUSE&quot;);
}

void wyszukajUzytkownikaPoNazwisku(vector &amp;lt;Dane&amp;gt; osoby) {

    system(&quot;CLS&quot;);
    string szukaneNazwisko;
    vector &amp;lt;Dane&amp;gt; :: iterator it;

    cout &amp;lt;&amp;lt; &quot;Podaj Nazwisko ktore chcesz wyszukac :&quot; &amp;lt;&amp;lt; endl;
    cin &amp;gt;&amp;gt; szukaneNazwisko;

     for( it = osoby.begin() ; it != osoby.end() ; ++it) {

        if((*it).nazwisko == szukaneNazwisko) {
            cout &amp;lt;&amp;lt; &quot;Id: &quot; &amp;lt;&amp;lt; (*it).numerIdUzytkownika &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Imie: &quot; &amp;lt;&amp;lt; (*it).imie &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Nazwisko: &quot; &amp;lt;&amp;lt; (*it).nazwisko &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Nr Tel: &quot; &amp;lt;&amp;lt; (*it).nrTel &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Adres Email: &quot; &amp;lt;&amp;lt; (*it).adresEmail &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; &quot;Adres Zam: &quot; &amp;lt;&amp;lt; (*it).korespondecja &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; endl;
        }
    }
    cout &amp;lt;&amp;lt; endl;
    system(&quot;PAUSE&quot;);
}

int zaladowaniePlikuTekstowego(struct Dane *uzytkownicy) {
    string linia;
    fstream plik;

    plik.open(&quot;adresacja.txt&quot;, ios::in);
    if(plik.good() == false) {
        cout &amp;lt;&amp;lt; &quot;Plik nie istnieje !! &quot; &amp;lt;&amp;lt; endl;
    }
    while(getline(plik,linia)) {


(*uzytkownicy).numerIdUzytkownika = linia;
(*uzytkownicy).imie = pobierzLinie()
(*uzytkownicy).naziwsko = pobierzLinie();
(*uzytkownicy).nrTel = pobierzLinie();
(*uzytkownicy).adresEmail = pobierzLinie();
(*uzytkownicy).korespondecja = pobierzLinie();

    }
    return iloscUzytkownikow;
}
int main() {
    Dane uzytkownicy;
    vector &amp;lt;Dane&amp;gt; osoby;
    int iloscUzytkownikow = 0;
    char wyborOpcji;

    do {
        system(&quot;CLS&quot;);
       // iloscUzytkownikow = zaladowaniePlikuTekstowego(&amp;amp;uzytkownicy);
       //   osoby.push_back(uzytkownicy)
        cout &amp;lt;&amp;lt; &quot;Witaj w ksiazce Adresowej !&quot; &amp;lt;&amp;lt; endl;

        cout &amp;lt;&amp;lt; &quot;1 - Dodaj nowego Uzytkownika&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;2 - Wyszukaj po Imieniu&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;3 - Wyszukaj po Nazwisku&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;4 - Wyswietl wszystkie osoby&quot; &amp;lt;&amp;lt; endl;
        cout &amp;lt;&amp;lt; &quot;5 - Opusc program&quot; &amp;lt;&amp;lt; endl;

        wyborOpcji = getch();

        switch(wyborOpcji) {
        case '1' : {
            iloscUzytkownikow = dodajUzytkownika(&amp;amp;uzytkownicy, iloscUzytkownikow);
            osoby.push_back(uzytkownicy);
        }
        break;
        case '2' : {
            wyszukajUzytkownikaPoImieniu(osoby);
        }
        break;
        case '3' : {
            wyszukajUzytkownikaPoNazwisku(osoby);
        }
        break;
        case '4' : {
            wyswietlWszystkichUzytkownikow(osoby);
        }
        break;
        case '5' : {
            exit(0);
        }
        break;
        }
    } while(wyborOpcji != '5');
    return 0;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1273/ksi%C4%85%C5%BCka-adresowa</guid>
<pubDate>Sat, 17 Dec 2022 14:58:01 +0000</pubDate>
</item>
<item>
<title>Poznajemy struktury danych - zadanie 5</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1253/poznajemy-struktury-danych-zadanie-5</link>
<description>&lt;p&gt;Hej,&lt;/p&gt;

&lt;p&gt;Mam problem z ostatnim zadaniem z działu : Poznajmy struktury danych - zadanie 5.&lt;/p&gt;

&lt;p&gt;Na tą chwilę kod jest jak poniżej. Jakieś wskazówki jak wyświetlić go w formie zadanej w zadaniu ??&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;sstream&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;string&amp;gt;

using namespace std;

string displayTheCounter (string packedText, int numberInText)
{
    string counter = &quot;&quot;;

    while (isdigit(packedText[numberInText - 1]))
    {
        counter = packedText[numberInText - 1] + counter;
        numberInText--;
    }

    return counter;
}

string displayTextInBrackets (string packedText, int numberInText)
{
    size_t positionOfClosedBracet = packedText.find (']');
    string textInBracket = packedText.substr(numberInText + 1, positionOfClosedBracet - numberInText - 1);

    return textInBracket;

}


int main()
{
    string packedText = &quot;2[a]4[bc]6[ghtieg]&quot;;
    string unpackedText = &quot;&quot;;
    string counter;
    string textInBracket;

    int length = packedText.length();

    for (int i = 0; i &amp;lt; length; i++)
    {
        if (packedText[i] == '[')
        {
            counter = displayTheCounter(packedText, i);
            textInBracket = displayTextInBrackets(packedText, i);


            cout &amp;lt;&amp;lt; counter &amp;lt;&amp;lt; endl;
            cout &amp;lt;&amp;lt; textInBracket &amp;lt;&amp;lt; endl;
            system(&quot;pause&quot;);


        }

    }



    return 0;

}
&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1253/poznajemy-struktury-danych-zadanie-5</guid>
<pubDate>Thu, 15 Dec 2022 17:31:06 +0000</pubDate>
</item>
<item>
<title>Książki adresowej ciąg dalszy.</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1240/ksi%C4%85%C5%BCki-adresowej-ci%C4%85g-dalszy</link>
<description>&lt;p&gt;Ok, jako że ostatnie moje wątpliwości zostały rozwiane, liczę że i tym razem się uda.&lt;/p&gt;

&lt;p&gt;Mianowicie, obecnie borykam się z zapisem osób użytkownika. Napisałem funkcje mające za zadanie dostać się do poszczególnych danych użytkownika pomiędzy pionowymi liniami (wstępnie id_uzytkownika/id_osoby/imie_osoby) i gdzieś coś przeoczam i&amp;nbsp;nie dociągam. Problem jest w momencie kiedy próbuję dodać kolejną osobę&amp;nbsp; przelogowując się na innego uzytkownika - usuwa mi zapisane osoby i nadpisuje w ich miejsce obecnie zalogowanego użytkownika.&lt;/p&gt;

&lt;p&gt;Jakieś wskazówki?&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
string  getting_rid_of_first_line(string source_text, string first_vertical_line) {

    size_t first_position_of_line;
    string string_to_return = &quot;&quot;;
    first_position_of_line = source_text.find(first_vertical_line);

    string_to_return = source_text.substr(0,first_position_of_line);

    return string_to_return;
}

int loading_friends_from_file(vector &amp;lt;Friend&amp;gt; &amp;amp;friends, int logged_user_id) {

    Friend new_friends;

    string personals_data = &quot;&quot;;
    fstream file;

    file.open(&quot;friends.txt&quot;, ios :: in);

    if (file.good()) {

        while(getline(file,personals_data)) {

            if(stoi(getting_rid_of_first_two_lines(personals_data,&quot;|&quot;,&quot;|&quot;)) == logged_user_id ) {
                int persons_number = 1;

                for (size_t index{}; index &amp;lt; personals_data.length(); ++index) {

                    switch(persons_number) {
                    case 1:
                        new_friends.friends_id = stoi(getting_rid_of_first_line(personals_data, &quot;|&quot;));
                        new_friends.name = getting_rid_of_second_and_third(personals_data, &quot;|&quot;, &quot;|&quot;, &quot;|&quot;);
                        break;
                    }
                    personals_data = &quot;&quot;;
                    persons_number ++;
               }
                friends.push_back(new_friends);
            }
        }
    }
    file.close();

    return new_friends.friends_id;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1240/ksi%C4%85%C5%BCki-adresowej-ci%C4%85g-dalszy</guid>
<pubDate>Thu, 15 Dec 2022 09:38:22 +0000</pubDate>
</item>
<item>
<title>Doradztwo dot. przekazywania IdUzytkownika</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1215/doradztwo-dot-przekazywania-iduzytkownika</link>
<description>&lt;p&gt;Serwus,&lt;/p&gt;

&lt;p&gt;stukam właśnie kod dot. Seminarium 19 - scalenia książek adresowych ze sobą.&lt;/p&gt;

&lt;p&gt;Zastanawiam się, w jaki sposób zmienić przesyłanie IdUzytkownika do pliku.&lt;/p&gt;

&lt;p&gt;Obecnie robię to przez referencję, w pliku ładnie zapisuje do momentu wylogowania i zmienienia użytkownika. Wtedy nadpisuje id zmienionego użytkownika, zamiast zostawić jak było. Wiem, w czym jest problem (na chwilę obecną nie wiem jak się z tym uporać), próbowałem już przekazać w voidzie jeszcze drugi wektor &amp;lt;User&amp;gt;, ale i to nic nie wskórało. Na czerwono zaznaczyłem, gdzie myślę ze powinienem wprowadzić zmiany.&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
void saving_friends_to_file&lt;span style=&quot;background-color:#ff0000&quot;&gt;(vector &amp;lt;Friend&amp;gt; &amp;amp;friends, int Logged_user_id)&lt;/span&gt; {

    fstream friends_file;
    string name, surname, phone_number, email, adress;

    friends_file.open (&quot;friends.txt&quot;, ios::out );

    if (friends_file.good()) {

        int friends_amount = friends.size();
        for (int i = 0; i &amp;lt; friends_amount; i++) {

            friends_file &amp;lt;&amp;lt; friends[i].friends_id &amp;lt;&amp;lt; &quot;|&quot;;
          &lt;span style=&quot;background-color:#ff0000&quot;&gt;  friends_file &amp;lt;&amp;lt; Logged_user_id &amp;lt;&amp;lt; &quot;|&quot;;&lt;/span&gt;
            friends_file &amp;lt;&amp;lt; friends[i].name&amp;lt;&amp;lt; &quot;|&quot;;
            friends_file &amp;lt;&amp;lt; friends[i].surname &amp;lt;&amp;lt; &quot;|&quot;;
            friends_file &amp;lt;&amp;lt; friends[i].phone_number&amp;lt;&amp;lt; &quot;|&quot;;
            friends_file &amp;lt;&amp;lt; friends[i].email &amp;lt;&amp;lt; &quot;|&quot;;
            friends_file &amp;lt;&amp;lt; friends[i].adress &amp;lt;&amp;lt; &quot;|&quot; &amp;lt;&amp;lt; endl;

        }
        friends_file.close();
    } else {
        cout &amp;lt;&amp;lt; &quot;couldnt open file&quot; &amp;lt;&amp;lt; endl;
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1215/doradztwo-dot-przekazywania-iduzytkownika</guid>
<pubDate>Wed, 07 Dec 2022 20:02:58 +0000</pubDate>
</item>
<item>
<title>Powielanie stringa</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1207/powielanie-stringa</link>
<description>&lt;p&gt;Hej, czy jest jakaś opcja na powielanie stringa (ileś razy). Tak jak to jest np w pythonie :&lt;/p&gt;

&lt;pre&gt;
wielewitaj = &quot;witaj&quot; * 10&lt;/pre&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1207/powielanie-stringa</guid>
<pubDate>Mon, 05 Dec 2022 19:48:23 +0000</pubDate>
</item>
<item>
<title>SPOJ FCTRL3 - Dwie cyfry silni</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1202/spoj-fctrl3-dwie-cyfry-silni</link>
<description>&lt;p&gt;Cześć Wszystkim :)&lt;/p&gt;

&lt;p&gt;Zwracam się do Was z prośbą bo sam nie mogę namierzyć błędu. Problem polega na tym, że na ideone wyniki wyświetlone są poprawnie, czas też nie jest przekroczony, natomiast sędzia na SPOJ pokazuje błędną odpowiedź...&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pl.spoj.com/problems/FCTRL3/&quot; rel=&quot;nofollow&quot;&gt;https://pl.spoj.com/problems/FCTRL3/&lt;/a&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int policzenieSilni(int liczba)
{
    int silnia=1;
    for (int i = liczba; i&amp;gt;0; i--)
    {
       silnia *= i;
    }
    return silnia;
}

int main()
{
    int test=1;
    cin &amp;gt;&amp;gt; test;
    for (int i = 0; i &amp;lt; test; i++)
    {
        int liczba;
        cin &amp;gt;&amp;gt; liczba;
        if (liczba &amp;lt; 10)
        {
        int silnia = policzenieSilni(liczba);
        cout &amp;lt;&amp;lt; silnia/10%10&amp;lt;&amp;lt;&quot; &quot;&amp;lt;&amp;lt; silnia%10&amp;lt;&amp;lt;endl;
        }
        else cout &amp;lt;&amp;lt;0&amp;lt;&amp;lt;&quot; &quot;&amp;lt;&amp;lt;0;
    }
    return 0;
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1202/spoj-fctrl3-dwie-cyfry-silni</guid>
<pubDate>Wed, 30 Nov 2022 14:29:17 +0000</pubDate>
</item>
<item>
<title>Niewywoływanie się żadnej funkcji</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1198/niewywo%C5%82ywanie-si%C4%99-%C5%BCadnej-funkcji</link>
<description>Hej, cześć wszystkim. Wykonuje właśnie kod do zadania domowego z kursu Pasja informatyki odc. 11 (&lt;a href=&quot;https://www.youtube.com/watch?v=63QjKBcIySs&amp;amp;list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo&amp;amp;index=12&quot; rel=&quot;nofollow&quot;&gt;https://www.youtube.com/watch?v=63QjKBcIySs&amp;amp;list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo&amp;amp;index=12&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Chodzi o to, żeby stworzyć program, który będzie wyświetlał średnią z 5 podanych przez użytkownika liczb, a następnie pokaże liczbę (z tych 5), która jest najbardziej zbliżona do obliczonej średniej.&lt;br /&gt;
&lt;br /&gt;
Sytuacja wygląda tak, że na początku funkcjonalnie działało poprawnie, natomiast gdy funkcję zwracającą liczbę szukaną (która obliczała w tym też średnią) podzieliłem na 2 funkcje do liczenia średniej oraz do zwracania liczby szukanej coś się popsuło. Dokładnie to: przy uruchamianiu programu nic się nie wyświetla i należy kliknąć klawisz, aby zamknąć.&lt;br /&gt;
&lt;br /&gt;
P.S. Będę wdzięczny za możliwe inne metody napisania tego programu natomiast najbardziej zależy mi na znalezieniu problemu.&lt;br /&gt;
&lt;br /&gt;
P.S.2. Jestem świeżakiem, więc po 1 miło mi tu gościć :) Jestem Krzysiek :P, a po 2 wydaje mi się, że problem jest w funkcji oblicz_srednia(), więc inne rzeczy zakomentowałem.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
KOD:&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include&amp;lt;cstdlib&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
float oblicz_srednia(float *tab, int ile)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float suma = 0;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i=0; i&amp;lt;ile; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suma += *tab;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab ++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return (suma/ile);&lt;br /&gt;
}&lt;br /&gt;
/*float wybierz_najblizej_sredniej(float *tab, int ile, float srednia)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float a, wynik;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i=ile; i&amp;gt;0; i--)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab--;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a = abs(srednia-(*tab));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wynik = *tab;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//cout &amp;lt;&amp;lt; &amp;quot;Srednia wynosi: &amp;quot; &amp;lt;&amp;lt; srednia;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i=0; i&amp;lt;ile; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab ++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (a &amp;gt; abs(srednia-(*tab)))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a = abs(srednia-(*tab));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wynik = *tab;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return wynik;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int ile;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float tablica[ile];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float liczba, srednia;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &amp;quot;Wpisz ile liczb: &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; ile;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &amp;quot;Wpisz po spacji liczby: &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i=0; i&amp;lt;ile; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin &amp;gt;&amp;gt; liczba;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tablica[i] = liczba;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;srednia = oblicz_srednia(tablica, ile);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &amp;quot;Srednia wynosi: &amp;quot; &amp;lt;&amp;lt; srednia;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;// cout&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;Liczba najblizej sredniej to: &amp;quot; &amp;lt;&amp;lt; wybierz_najblizej_sredniej(tablica, ile, srednia);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}</description>
<category>C++</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1198/niewywo%C5%82ywanie-si%C4%99-%C5%BCadnej-funkcji</guid>
<pubDate>Tue, 29 Nov 2022 20:38:27 +0000</pubDate>
</item>
</channel>
</rss>