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

Struktury, wczytywanie z pliku

Ostatnio zmodyfikowano 2011-12-28 14:02
Autor Wiadomość
Szelka
Temat założony przez niniejszego użytkownika
Struktury, wczytywanie z pliku
» 2011-12-27 17:52:35
Potrzebuje do programu funkcje która wczyta z pliku dane i wpisze do tablicy struktur. Tak aby pierwszy wiersz przyporządkowany był do imienia drugi do nazwiska itp. Szukam tego od dwóch dni i nic. Przyda się każda pomoc od gotowego kodu po tytuł książki w której jest to zagadnienie omówione.
P-46402
pekfos
» 2011-12-27 18:00:13
Potrzebuje do programu funkcje która[..]
To napisz sobie..
P-46403
Szelka
Temat założony przez niniejszego użytkownika
» 2011-12-27 18:08:55
Thank you Mr Obvious.
A ja głupi liczyłem na pomoc...
P-46404
SeaMonster131
» 2011-12-27 18:17:14
No jej, poczytaj sobie np o fstream (» Kurs C++Obsługa plików lekcja), no i wczytuj dane do zmiennej tej struktury...
Gotowego kodu nikt Ci nie da.
P-46405
Szelka
Temat założony przez niniejszego użytkownika
» 2011-12-27 20:35:16
C/C++
#include <iostream>
#include <fstream>

using namespace std;
string t;
struct test
{
    string imie;
    string nazwisko;
    string adres;
};
test a[ 10 ];

int main()
{
    std::fstream plik;
    plik.open( "plik.txt", ios::in );
    std::string napis;
   
    int k = 1;
   
    for( int i = 0; plik.eof() != 1; i++ )
    {
        getline( plik, napis );
        if( k == 1 )
        {
            cout << "i=" << i << "k=" << k << " " << napis << "\n";
            // t=napis;
            a[ i ].imie = napis;
        }
        if( k == 2 )
        {
            cout << "i=" << i << "k=" << k << " " << napis << "\n";
            a[ i ].nazwisko = napis;
        }
        if( k == 3 )
        {
            cout << "i=" << i << "k=" << k << " " << napis << "\n";
            a[ i ].adres = napis;
            k = 0;
        }
        k++;
    }
    plik.close();
    for( int i = 0; i < 1; i++ )
    {
        cout << a[ i ].imie << "\n";
        cout << a[ i ].nazwisko << "\n";
        cout << a[ 1 ].adres << "\n";
    }
   
   
    system( "pause" );
    return( 0 );
}
Coś takiego mi wyszło, ale nie działa podstawianie wiersza do struktury(np a.imie=napis) Ktoś ma jakiś pomysł?
P-46416
pekfos
» 2011-12-27 20:45:26
prościej będzie tak:
C/C++
getline( plik, test[ a ].imie );
getline( plik, test[ a ].nazwisko );
//itd;
P-46417
Szelka
Temat założony przez niniejszego użytkownika
» 2011-12-28 09:07:26
C/C++
#include <iostream>
#include <fstream>

using namespace std;
string t;
struct test
{
    string imie;
    string nazwisko;
    string adres;
};
test a[ 10 ];

int main()
{
    std::fstream plik;
    plik.open( "plik.txt", ios::in );
    std::string napis;
   
    int k = 1;
   
    for( int i = 0; plik.eof() != 1; i )
    {
        if( k == 1 )
        {
            cout << "i=" << i << "k=" << k << " " << napis << "\n";
            getline( plik, a[ i ].imie );
        }
        if( k == 2 )
        {
            cout << "i=" << i << "k=" << k << " " << napis << "\n";
            getline( plik, a[ i ].nazwisko );
        }
        if( k == 3 )
        {
            cout << "i=" << i << "k=" << k << " " << napis << "\n";
            getline( plik, a[ i ].adres );
            k = 0;
            i++;
        }
        k++;
    }
    plik.close();
    for( int i = 0; i < 1; i++ )
    {
        cout << a[ i ].imie << "\n";
        cout << a[ i ].nazwisko << "\n";
        cout << a[ 1 ].adres << "\n";
    }
   
   
    system( "pause" );
    return( 0 );
}
Kod uprościł się i trochę poprawiłem ale nie do końca. Nadal źle wczytuje dane ale ma teraz problem tylko z a.adres. Przypisuje do niego zawsze 6 wiersz z pliku. Ma ktoś pomysł?
P-46427
malan
» 2011-12-28 11:50:27
C/C++
for( int i = 0; plik.eof() != 1; i )
i?
P-46433
« 1 » 2
  Strona 1 z 2 Następna strona