C ++ ungetc () - C ++ Standart Kitaplığı

C ++ 'daki ungetc () işlevi, önceden okunan karakteri tekrar okunabilmesi için akışa geri iter.

Ungetc () işlevi başlık dosyasında tanımlanmıştır.

ungetc () prototip

 int ungetc (int ch, FILE * akım);

Ungetc () işlevi, ch karakterini, ch EOF'ye eşit olmadığı sürece dosya akışıyla ilişkili tampona geri iter. Ch, EOF'ye eşitse, işlem başarısız olur ve akışta değişiklik olmaz.

Ortada herhangi bir okuma veya yeniden konumlandırma işlemi olmadan birden fazla çağrılırsa ungetc () çağrıları başarısız olabilir.

Ungetc () 'ye yapılan bir çağrı başarılı olursa, feof dosya durumunun sonu bayrağı temizlenir.

İkili akışlar için başarılı bir ungetc çağrısı, akış konumu göstergesini bir azaltır. Akış konumu göstergesi sıfırsa, davranış belirsizdir.

Metin akışı için, başarılı bir ungetc çağrısı, akış konumu göstergesini belirtilmemiş bir şekilde değiştirir. Ancak, tüm geri itilen karakterlerin bir okuma işlemiyle geri getirilmesinden sonra, akış konumu göstergesinin ungetc () çağrılmadan önceki değerine eşit olması garanti edilir.

ungetc () Parametreler

  • ch: Geri itilecek karakter.
  • stream: Karakterin geri itildiği dosya akışı.

ungetc () Dönüş değeri

  • Başarı durumunda, ungetc () işlevi ch karakterini döndürür.
  • Başarısızlık durumunda EOF, akışı değiştirmeden döndürülür.

Örnek: ungetc () işlevi nasıl çalışır?

 #include #include #include using namespace std; int main() ( int c; long value = 0; char str() = "101axc"; FILE *fp = fopen("file.txt", "r+"); fputs(str,fp); rewind(fp); while(1) ( c = fgetc(fp); if (isdigit(c)) value = value*10 + c - '0'; else break; ) ungetc(c, fp); cout << "Value = " << value << endl; fclose(fp); return 0; )

Programı çalıştırdığınızda, olası bir çıktı:

 Değer = 101

Ilginç makaleler...