Προς το περιεχόμενο

Ι/Ο σε αρχείο σε Cpp


Leon_13

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια σας έχω γράψει το παρακάτω κομμάτι κώδικα.

 

>
fstream fileg("data.alex", ios::in | ios:: binary);
do
    {
         fileg.seekg(sizeof(form)*key);
         fileg.read((char*)&temp1,sizeof(form));
         if(!fileg)
         {    cout<<"1";system("pause");
              fileg.close();
              fstream fileg("data.alex",ios::out | ios::binary);
              fileg.seekg(sizeof(form)*key);
              fileg.write((char*)&temp,sizeof(form));
              break;
              }
         else
         {    cout<<"2";system("pause");
              if (temp1.av==0)
              {
                 fileg.close();
                 fstream fileg("data.alex",ios::out | ios::binary);
                 fileg.seekg(sizeof(form)*key);
                 fileg.write((char*)&temp,sizeof(form));
                 break;
                 }
              else
                  key++;
             }
    }while(flag==0);
    fileg.close();

 

το πρόβλημά μου είναι ότι σε κάθε νέα εγγραφή μπλοκ κώδικα χάνετε η παλιά εγγραφή που έχω περάσει στο αρχείο.

πως γίνετε να μην χάνετε; έχω χρησιμοποιήσει κάτι λάθος ή θέλω κάποια άλλη εντολή; thx;)

Δημοσ.

Όχι ούτε καν γράφει με app. περίεργο, περίμενα να το γράψει στο τέλος του αρχείου.

 

ευχαριστώ πάντως.

 

---------- Προσθήκη στις 21:10 ---------- Προηγούμενο μήνυμα στις 21:00 ----------

 

>fstream fileg("data.alex",ios:: out | ios::app | ios::binary);

 

 

χρειαζόταν την out η app για να λειτουργήσει.

thx για την βοήθεια.

 

 

---------- Προσθήκη στις 21:16 ---------- Προηγούμενο μήνυμα στις 21:10 ----------

 

κάτι άλλο με την app έχασε το νόημα το .seekg(); αλλιώς θα πρέπει να εξετάζω το αρχείο σειριακά κάτι που δεν επιτρέπεται από την εκφώνηση.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...