Hallo,
Ik heb een vector van objecten en die objecten probeer ik nu in een bestand weg te schrijven, maar hij schrijft maar 1 letter weg ipv de hele CString.
Dialoog:
Nu wil ik dus die vector doorlopen en naar een bestand wegschrijven:
Adresgegevens:
Nu schrijft hij dus alleen de eerste karakter van de postcode weg en niet de hele postcode.
Iemand een idee?
Ik heb een vector van objecten en die objecten probeer ik nu in een bestand weg te schrijven, maar hij schrijft maar 1 letter weg ipv de hele CString.
Dialoog:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| void CDialoogAdresToevoegen::OnOK() { //Uitlezen textfield GetDlgItemText(IDC_TF_NAAM,m_Voornaam); GetDlgItemText(IDC_TF_ADRES,m_Adres); GetDlgItemText(IDC_TF_POSTCODE,m_Postcode); GetDlgItemText(IDC_TF_PLAATS,m_Plaats); //pGegevens is een pointer van het type CAdresgegevens CAdresgegevens * pGegevens; pGegevens = new CAdresgegevens(m_Voornaam,m_Adres,m_Postcode,m_Plaats); //Koppeling naar mainwindow CMainWindow * pFrame = (CMainWindow*)AfxGetMainWnd(); //Doorgeven aan de hoofdclass pFrame->AddToAdresVector(pGegevens); CDialog::OnOK(); } |
C++:
1
2
3
4
5
6
7
8
9
10
11
12
| void CMainWindow::AddToAdresVector (CAdresgegevens * pAdresgegevens) { //adres->getAdres() is gelijk aan (*adres).getAdres() MessageBox(pAdresgegevens->getAdres()); //Toevoegen aan vector ---> De inhoud van de pointer (*pAdresgegevens) adresVector.push_back(*pAdresgegevens); //Vector uitlezen kan zo: Dit gaat goed. MessageBox(adresVector.at(0).getPostcode()); } |
Nu wil ik dus die vector doorlopen en naar een bestand wegschrijven:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| void CMainWindow::OnMenuItemOpslaan() { fstream iofile("output.txt", ios::in | ios::out |ios::ate); if (!iofile.fail()) { // Put whatever you need to generate new lines here for (int i = 1; i <= 3; i++ ) { CString postcode = adresVector.at(0).getPostcode(); iofile << "Naam: " << *postcode << " at end" << endl; } } else { MessageBox("Fout met openen uitvoerbestand!"); } } |
Adresgegevens:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CAdresgegevens::CAdresgegevens(CString voornaam,CString adres, CString postcode, CString plaats ) :_voornaam(voornaam),_adres(adres),_postcode(postcode), _plaats(plaats) { } CString CAdresgegevens::getVoornaam() { return _voornaam; } CString CAdresgegevens::getAdres() { return _adres; } CString CAdresgegevens::getPostcode() { return _postcode; } CString CAdresgegevens::getPlaats() { return _plaats; } CAdresgegevens::~CAdresgegevens() { } |
Nu schrijft hij dus alleen de eerste karakter van de postcode weg en niet de hele postcode.
Iemand een idee?
Al het goeie.......