Condividi tramite


basic_filebuf::seekpos

Provare a modificare le posizioni dati per i flussi archiviati.

virtual pos_type seekpos(
   pos_type _Sp,
   ios_base::openmode _Which = ios_base::in | ios_base::out
);

Parametri

  • _Sp
    Posizione da cercare.

  • _Which
    Specifica la modalità per la posizione del puntatore.L'impostazione predefinita è consentire di modificare letti e scrivere i percorsi.

Valore restituito

Se il puntatore del file fp è un puntatore null, la funzione ha esito negativo.In caso contrario, tenta di modificare la posizione del flusso chiamando fsetpos(fp, &fposn), dove fposn è l'oggetto fpos_t archiviato in pos.Se la funzione ha esito positivo, la funzione restituisce pos.In caso contrario, restituisce una posizione non valida del flusso.Per determinare se la posizione del flusso non è valida, confrontare il valore restituito da pos_type(off_type(-1)).

Note

La funzione membro virtuale protetta tenta di modificare le posizioni dati per i flussi archiviati.Per un oggetto di classe basic_filebuf<Elem, Tr>, una posizione del flusso può essere rappresentato da un oggetto di tipo fpos_t, che archivia un offset e tutte le informazioni sullo stato necessari per analizzare un ampio flusso.L'offset zero definisce il primo elemento del flusso.(Un oggetto di file pos_type di tipo almeno un oggetto fpos_t ).

Per un file aperto per la lettura e la scrittura, sia l'input che i flussi di output vengono inseriti in tandem.Per passare tra l'inserimento e estrarre, è necessario chiamare pubseekoff o pubseekpos.Le chiamate a pubseekoff (e quindi a seekoff) presentano diverse limitazioni per i flussi di testo, i flussi binari e gli di flussi.

Per un ampio flusso, se gli inserimenti si sono verificati da quando il flusso è stato aperto, dall'ultima chiamata a streampos, le chiamate di funzione overflow.Inserire anche qualsiasi sequenza necessaria per ripristinare lo stato iniziale di conversione, utilizzando il fac facet di conversione di file per chiamare fac.unshift in base alle necessità.Ogni elemento byte di tipo char prodotto pertanto è scritto nel flusso connesso definito dal puntatore del file fp come se le chiamate successive del form fputc(byte, fp).Se la chiamata a fac.unshift o qualsiasi scrive l'esito negativo, la funzione non riesce.

Requisiti

intestazione: <fstream>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

basic_filebuf Class

programmazione di iostream

convenzioni di iostream