logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak poprawić kod C++ do zapisu i odczytu pliku?

szeryfff 14 Mar 2008 21:30 3480 2
REKLAMA
  • #1 4909763
    szeryfff
    Poziom 24  
    Posty: 997
    Pomógł: 2
    Ocena: 43
    Witam!
    Wklejam ponizej kod bardzo prostego programu, z ktorym jednak nie moge sobie poradzic. A to dlatego ze dopiero poznaje C.
    
    #include <iostream.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <math.h>
    #include <stdio.h>
    #include <fstream.h> 
    
    int ciag_nad [9];
    int kod_nad [13];
    int i,j,k,l;
    
    long liczba_bitow, liczba_ramek;
    
    main()
     {
     while ((cout<<"Podaj liczbe przesylanych bitow z zakresu (10,1000000): ") && !(cin>>liczba_bitow) || liczba_bitow<9 || liczba_bitow>1000000)
            {
            system("cls");
            cout<<"Nieprawidlowa wartosc liczby przesylanych bitow!!!\n";
            };
     cout<<"\n";
    
    
     system("cls");
     cout<<"Liczba przesylanych bitow: "<<liczba_bitow<<"\n";
    
    
    liczba_ramek=(liczba_bitow/9);
    for(k=0; k<liczba_ramek; k++)
             {
             for (i=1; i<10; i++)
                 {
                 ciag_nad[i]=rand()%2;
                 }
    
                 kod_nad[1]=(ciag_nad[1]+ciag_nad[2]+ciag_nad[4]+ciag_nad[5]+ciag_nad[7]+ciag_nad[9])%2;
                 kod_nad[2]=(ciag_nad[1]+ciag_nad[3]+ciag_nad[4]+ciag_nad[6]+ciag_nad[7])%2;
                 kod_nad[3]=ciag_nad[1];
                 kod_nad[4]=(ciag_nad[2]+ciag_nad[3]+ciag_nad[4]+ciag_nad[8]+ciag_nad[9])%2;
                 kod_nad[5]=ciag_nad[2];
                 kod_nad[6]=ciag_nad[3];
                 kod_nad[7]=ciag_nad[4];
                 kod_nad[8]=(ciag_nad[5]+ciag_nad[6]+ciag_nad[7]+ciag_nad[8]+ciag_nad[9])%2;
                 kod_nad[9]=ciag_nad[5];
                 kod_nad[10]=ciag_nad[6];
                 kod_nad[11]=ciag_nad[7];
                 kod_nad[12]=ciag_nad[8];
                 kod_nad[13]=ciag_nad[9];
    
          //cout<<",,,";
          ofstream ofile1("test.txt");
    
           for (i=1; i<10; i++)
               {
               cout<< ciag_nad[i] ;
               }
    
               //cout<<",,,";
               for (l=1; l<14; l++)
                   {
                   cout<< kod_nad[l] ;
                   ofile1<<kod_nad[l];
                   }
    
                   ofile1.close();
                   //ifile.close();
    
    };
    getch();
    };
    


    Samo dzialanie programu nie jest bardzo wazne, jest to prosty koder, ktory 9 bitow wejsciowych koduje, i na wyjsciu mamy 13 bitow.
    Zapis do pliku udalo mi sie zrobic, ale nie jest to do konca to co bym chcial (bo za kazdym razem kasuje sie zawartosc pliku, a chcilabym zeby sie dopisywalo dalej).
    No i chcialbym zrobic odczyt z pliku bitow wejsciowych zamisat tego: ciag_nad=rand()%2; (obecnie sa generowane). Probowalem zrobic to analogicznie do zapisu, ale sie nie udalo :(
    Interesuje mnie wczytywanie znak po znaku.
    Czy bylby ktos w stanie mi pomoc?
    Pozdrawiam!
  • REKLAMA
  • #2 4910496
    BugsdBunny
    Poziom 14  
    Posty: 153
    Pomógł: 8
    Ocena: 3
    Spróbuj tak zapisać do pliku

       
    // ....
    using namespace std;
       fstream file;
       file.open( "test.txt", ios_base::out | ios_base::app );
    
       file << "testing";// wurzacasz do pliku
    
    
    //...
    


    Cały sęk w tym żeby otwrzyć plik z odpowiednimi atrybutami

    podobny temat był nieco niżej
    https://www.elektroda.pl/rtvforum/topic962531.html
  • #3 4910503
    szeryfff
    Poziom 24  
    Posty: 997
    Pomógł: 2
    Ocena: 43
    Oki, dzieki, sprawdze to :)
    A jak wczytac bity z pliku znak po znaku?
    Pozdrawiam
REKLAMA