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

Resetowanie operatora wczytywanie z pliku ">>"

Ostatnio zmodyfikowano 2016-03-23 12:44
Autor Wiadomość
jaśkoo
Temat założony przez niniejszego użytkownika
Resetowanie operatora wczytywanie z pliku ">>"
» 2016-03-23 12:20:20
Witajcie, za zadanie mam napisać program, który wczytuje dane liczbowe z jednego pliku i zapisuje do drugiego w postaci 3 kolumn. Wiem, że można to zrobić na dynamicznie lokowanej tablicy, albo na zwykłym liczniku, ale teraz chciałem zrobić to w ten sposób. A moje pytanie dotyczy tego czy operator wczytywania z pliku ">>" da się w jakiś sposób zresetować, zmusić go do powrotu do początku pliku, czy konieczne jest takie rozwiązanie jak u mnie? Jeśli macie jakieś inne pomysły na rozwiązanie tego zadanie to też chętnie o tym poczytam. :)
C/C++
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

void kolumny()
{
    fstream plik;
   
    plik.open( "liczby.dat", ios::in );
    if( plik.good() == false )
    {
        cout << "Nie odnaleziono pliku!";
        exit( 0 );
    }
    else
    {
        fstream plik2;
        plik2.open( "kolumny.txt", ios::out );
       
        int pomocnicza;
        int licznik = 0;
       
        while( !plik.eof() )
        {
            plik >> pomocnicza;
            licznik++;
        }
        plik.close();
       
        plik.open( "liczby.dat", ios::in );
        int tab[ licznik ];
       
        while( !plik.eof() )
        {
            for( int i = 1; i <= licznik; i++ )
            {
                plik >> tab[ i ];
                plik2 << tab[ i ] << "     ";
                if( i % 3 == 0 )
                {
                    plik2 << endl;
                }
            }
        }
        plik.close();
        plik2.close();
    }
}

int main()
{
    kolumny();
    cout << "DONE!";
    return 0;
}
P-146461
carlosmay
» 2016-03-23 12:44:18
Chodzi o wskaźnik odczytu z pliku.
Tak. Można go ustawić w dowolnym miejscu pliku.
Poruszanie się po pliku do odczytu.
P-146462
« 1 »
  Strona 1 z 1