Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kurs "Przestrzenie nazw" - Problem z przesłaniem struktury do funkcji

Ostatnio zmodyfikowano 2016-10-31 20:22
Autor Wiadomość
grego
Temat założony przez niniejszego użytkownika
Kurs "Przestrzenie nazw" - Problem z przesłaniem struktury do funkcji
» 2016-10-31 18:30:01
Dlaczego nie mogę przenieść struktury do funkcji?
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::fstream;
using std::string;
using std::ios;
namespace DDR
{
    struct Uzytkownicy
    {
       
        string imie;
        string nazwisko;
        string pochodzenie;
        string wyksztalcenie;
        string email;
        int wiek;
    };
}
void Zapisz( const DDR::Uzytkownicy * Dane[] );
int main()
{
    using DDR::Uzytkownicy;
    Uzytkownicy Persona[ 3 ];
    fstream plik;
    plik.open( "Plik.txt" );
    if( plik.is_open() | ios::trunc | ios::out | ios::app )
    {
        cout << "Wszystkie dane dotyczacze uzytkownikow zostana zapisane "
        << "w pliku o \nnazwie \"Plik.txt\"" << endl;
    }
    cout << "Prosimy o podanie danych 3 uzytkownikow naszego serwisu.\n\n";
    for( int i = 0, z = 1; i < 3; i++, z++ )
    {
        cin.clear();
        cin.sync();
        cout << "Dane uzytykownika " << z << endl << endl;
        cout << "Podaj imie lub imiona (jesli posiada wiecej niz jedno): ";
        getline( cin, Persona[ i ].imie );
        cout << "Podaj nazwisko: ";
        getline( cin, Persona[ i ].nazwisko );
        cout << "Podaj miejsce zamiekszania oraz nazwe kraju: ";
        getline( cin, Persona[ i ].pochodzenie );
        cout << "Podaj email:";
        getline( cin, Persona[ i ].email );
        cout << "Podaj wiek: ";
        cin >> Persona[ i ].wiek;
        cout << endl;
        Zapisz( & Persona[ i ] );
    }
    return 0;
    getch();
}
P-153126
BadBullPL
» 2016-10-31 18:33:56
void Zapisz( const DDR::Uzytkownicy * Dane[] );
Usuń '[]'
P-153129
grego
Temat założony przez niniejszego użytkownika
» 2016-10-31 19:56:20
No a teraz błąd krytyczny przy zapisie danych do pliku tekstowego. :)
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::fstream;
using std::string;
using std::ios;
namespace DDR
{
    struct Uzytkownicy
    {
       
        string imie;
        string nazwisko;
        string pochodzenie;
        string wyksztalcenie;
        string email;
        int wiek;
    };
}
void Zapisz( const DDR::Uzytkownicy * Dane, fstream & plik, int liczba );
int main()
{
    int liczba = 0;
    using DDR::Uzytkownicy;
    Uzytkownicy Persona[ 3 ];
    fstream plik;
    plik.open( "Plik.txt" );
    if( plik.is_open() | ios::trunc | ios::out | ios::app )
    {
        cout << "Wszystkie dane dotyczacze uzytkownikow zostana zapisane "
        << "w pliku o \nnazwie \"Plik.txt\"" << endl;
    }
    cout << "Prosimy o podanie danych 3 uzytkownikow naszego serwisu.\n\n";
    for( int i = 0, z = 1; i < 3; i++, z++ )
    {
        cin.clear();
        cin.sync();
        cout << "Dane uzytykownika " << z << endl << endl;
        cout << "Podaj imie lub imiona (jesli posiada wiecej niz jedno): ";
        getline( cin, Persona[ i ].imie );
        cout << "Podaj nazwisko: ";
        getline( cin, Persona[ i ].nazwisko );
        cout << "Podaj miejsce zamiekszania oraz nazwe kraju: ";
        getline( cin, Persona[ i ].pochodzenie );
        cout << "Podaj email:";
        getline( cin, Persona[ i ].email );
        cout << "Podaj wiek: ";
        cin >> Persona[ i ].wiek;
        cout << endl;
        Zapisz( & Persona[ i ], plik, liczba );
        liczba++;
    }
    return 0;
    getch();
}
void Zapisz( const DDR::Uzytkownicy * Persona, fstream & plik, int i )
{
    plik << Persona[ i ].imie;
    plik << Persona[ i ].nazwisko;
    plik << Persona[ i ].pochodzenie;
    plik << Persona[ i ].wyksztalcenie;
    plik << Persona[ i ].wiek;
}
P-153137
karambaHZP
» 2016-10-31 20:22:02
Tak możesz zapisać POD. Ze stringiem użyj metody data() lub c_str().
Poszukaj w artykułach artykuł o zapisie binarnym do pliku.

edit:
Zapis binarny
P-153138
« 1 »
  Strona 1 z 1