Wczytywanie z pliku/nietypowy problem :)

0

Witam! (Mój pierwszy post więc wypadałoby :) )

No więc tak mam plik który składa się z liczb rzeczywistych z tym, że niektóre liczby poprzedzone są znakiem 'x'. Przykładowy plik:

123
1024
768
x54
2012
x525
..itd.

W programie głównym chcę wczytywać dane z pliku, aż do napotkania jego końca (to akurat nie jest problem). Podczas wczytania każdej kolejnej liczby tworzony jest nowy obiekt i dodawany w sposób posortowany do listy jednokierunkowej(to też no problem). Chodzi o to, że jak podczas wczytywania spotkam ów nieszczęsny znak 'x' to ma być do listy dodana liczba za 'x' - em , a sam 'x' mówi tylko tyle że ma być wywołany konstruktor 'elementu' listy z dodatkowym parametrem :)

Ktoś wie? bo ja nie mam pojęcia ;)

0

Chodzi ci o coś takiego? :

int liczba;
char bufor[ROZMIAR];
//w jakiejś pętelce (odczytjącej dane z pliku):

fscanf( plik, "%s", bufor );

if(*bufor == 'x')
{
    liczba = atoi(bufor+1);
    //Wywołaj swoją funkcję z dodatkowymi parametrami
} 
else
{
    liczba = atoi(bufor);
    //Wywołaj swoją funkcję bez parametrów
}

Bez obrazy, ale jeśli o to ci chodziło to ten temat powinien trafić do newbie

0

/* dane.txt
123
1024
768
x54
2012
x525
*/
#include <iostream.h>
#include <fstream.h>


//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char **argv)
{
    int liczba ;
    char x ;

    ifstream plik("dane.txt");
    if(!plik)
    {
       cout << "Error" << endl ;
       cin.get();
       return 0;
    }

    while(plik)
    {

       if('x'==(char)plik.peek())
       {
          plik.get(x) ;
          plik >> liczba ;                     
          cout << liczba << endl ;
       }else{

                plik >> liczba ;
                cout << liczba << endl ;
                }

        plik.ignore(INT_MAX,'\n');
     }

     cin.get();
        return 0;
}
0

Tak dokładnie to:) wielkie dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1