Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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