Bagikan melalui


feof

Pengujian untuk akhir file pada aliran.

Sintaks

int feof(
   FILE *stream
);

Parameter

stream
Penunjuk ke FILE struktur.

Nilai hasil

Fungsi feof mengembalikan nilai bukan nol jika operasi baca telah mencoba membaca melewati akhir file; fungsi mengembalikan 0 sebaliknya. Jika penunjuk aliran adalah NULL, fungsi memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno diatur ke EINVAL dan feof mengembalikan 0.

Untuk informasi selengkapnya tentang kode pengembalian, lihat errno, , _doserrno_sys_errlist, dan _sys_nerr.

Keterangan

feof Rutinitas (diimplementasikan baik sebagai fungsi maupun sebagai makro) menentukan apakah akhir stream telah dilewatkan. Ketika akhir file diteruskan, operasi baca mengembalikan indikator akhir file hingga aliran ditutup atau sampai rewind, , fsetposfseek, atau clearerr dipanggil terhadapnya.

Misalnya, jika file berisi 10 byte dan Anda membaca 10 byte dari file, feof akan mengembalikan 0 karena, meskipun penunjuk file berada di akhir file, Anda belum mencoba membaca di luar akhir. Hanya setelah Anda mencoba membaca byte ke-11 akan feof mengembalikan nilai bukan nol.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Fungsi Header yang diperlukan
feof <stdio.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_feof.c
// This program uses feof to indicate when
// it reaches the end of the file CRT_FEOF.TXT. It also
// checks for errors with ferror.
//

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int  count, total = 0;
   char buffer[100];
   FILE *stream;

   fopen_s( &stream, "crt_feof.txt", "r" );
   if( stream == NULL )
      exit( 1 );

   // Cycle until end of file reached:
   while( !feof( stream ) )
   {
      // Attempt to read in 100 bytes:
      count = fread( buffer, sizeof( char ), 100, stream );
      if( ferror( stream ) )      {
         perror( "Read error" );
         break;
      }

      // Total up actual bytes read
      total += count;
   }
   printf( "Number of bytes read = %d\n", total );
   fclose( stream );
}

Input: crt_feof.txt

Line one.
Line two.

Output

Number of bytes read = 19

Lihat juga

Penanganan kesalahan
Streaming I/O
clearerr
_eof
ferror
perror, _wperror