Czytanie z pliku binarnego

0

Mam plik binarny .bin a w nim takie dane o wynikach z lotto:

1       5442    33, 33, 33, 33, 33, 33
2       5441    20, 20, 20, 20, 20, 20
3       5440    5, 5, 5, 5, 5, 5
4       5439    27, 27, 27, 27, 27, 27
5       5438    6, 6, 6, 6, 6, 6
6       5437    15, 15, 15, 15, 15, 15
7       5436    21, 21, 21, 21, 21, 21
8       5435    12, 12, 12, 12, 12, 12
9       5434    18, 18, 18, 18, 18, 18
10      5433    32, 32, 32, 32, 32, 32

Ktoś wie jakim sposobem wyświetlić pierwsze i ostatnie losowanie? Wiadomo środek trzeba pominąć to pewnie jakakolwiek pętla odpada? A zapewnie pliki binarne trzeba jakoś inaczej traktować niż zwykle czytanie z pliku txt

dodanie znacznika <code> - Furious Programming

0

dołącz przykład takiego pliku

0

tzn ten plik co podałem został zapisany w sposób binarny a wygląda tak jak binarny czyli nieczytelny :D

B     !   #   (   )   0   A              &   ,   @            $   '   -   ?        !   +   0   1   >        
      #   /   =  
         #   )   .   <               *   ,   ;              %   /   :           !   "   1   9         "   &   )   -

dodanie znacznika <code> - Furious Programming

1

W takim razie musisz podać formalny format tego pliku lub procedurę/funkcje jego zapisującą. Bez tego tylko do wróżki.

0
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
#pragma pack(push, 1) // w celu blokady adresowania
struct Los {
       int numer;
       int liczba[6];
};
#pragma pack(pop)    
    

int main(int argc, char *argv[])
{
    fstream we;
    fstream wy;
    char buff[256];
    string rob;
    Los los;
    int linia=1;
    
    we.open("wyniki.txt",ios_base::in);
    wy.open("losowanie.bin",ios_base::out|ios_base::binary);        //!!!!!!!!
    we.getline(buff,256);
    we.getline(buff,256);
    we.getline(buff,256);
    we.getline(buff,256);
    
    while(we.eof() == false)
    {
        we>>rob; 
        we>>los.numer;
        
        for(int i=0;i<4;i++)
           we>>rob; 
                    
        for(int i=0;i<6;i++)
         {
            we>>los.liczba[i];
            we>>rob;
          }   
     cout<<linia<<"\t"<<los.numer<<"\t";
     
     for(int i=0;i<6;i++)
     {
             cout<<los.liczba[1];
             if(i<5)
              {
                  cout<<", ";  
              }   
                       
     } 
     cout<<endl;
     linia++;   
      wy.write((char *)&los,sizeof(Los));  
                
}
    
    
   
    
    
    we.close();
    wy.close();
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
   ifstream fin("losowanie.bin",ios_base::in|ios_base::binary);
   Los head;
   fin.read((char *)&head,sizeof(Los));
   fin.seekg(-sizeof(Los),ios::end);
   Los tail;
   fin.read((char *)&tail,sizeof(Los));
   fin.close();

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