Język C++
ungetc
[funkcja] Określa pierwszy znak jaki ma zostać zwrócony przez następną operację odczytu danych ze strumienia.Składnia
#include <cstdio>
int ungetc( int character, FILE * stream );
Argumenty
Zwracana wartość
Zwraca znak przekazany do funkcji poprzez argument
character w przypadku sukcesu. Funkcja zwraca wartość
EOF w przypadku wystąpienia błędu.
Opis szczegółowy
Funkcja umożliwia określenie pierwszego znaku jaki ma zostać zwrócony przez następną operację odczytu danych ze strumienia. Znak umieszczony w strumieniu za pomocą niniejszej funkcji jest kasowany w chwili wywołania funkcji
fflush,
fseek,
fsetpos lub
rewind. Wywołanie niniejszej funkcji
nie modyfikuje danych strumienia, lecz jedynie zachowanie funkcji odczytujących dane. Funkcja musi być wywoływana na poprawnym i jednocześnie otwartym strumieniu danych.
Dodatkowe informacje
Uwaga! Wywołanie niniejszej funkcji ma również niezdefiniowane zachowanie wtedy, gdy zostanie ona wywołana bezpośrednio po funkcjach, których wewnętrzna implementacja korzysta z funkcji ungetc (np. funkcja fscanf).
|
Przykład
#include <cstdio>
int main()
{
FILE * pPlik = fopen( "plik.txt", "r" );
if( pPlik )
{
while( !feof( pPlik ) )
{
int znak = getc( pPlik );
if( znak == EOF )
break;
if( znak == '$' )
znak = '#';
printf( "Wstawiam znak '%c'\n", znak );
ungetc( znak, pPlik );
char bufor[ 128 ];
if( fgets( bufor, 127, pPlik ) )
printf( "Odczytano: \"%s\"\n", bufor );
}
fclose( pPlik );
}
return 0;
}
Zagadnienia powiązane
EOF | End of File - plik został przeczytany do końca, bądź wystąpił błąd podczas próby odczytu danych. (makro) |
---|
getc | Wczytuje znak ze strumienia. (funkcja) |
---|
putc | Zapisuje znak do strumienia. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.