Hàm fscanf đọc dữ liệu có định dạng từ file

int fscanf(FILE *stream,const char *format [, argument ]...);

Paramter:

stream: con trỏ file

format: giống hàm printf( ) và scanf( ).

Remark:

Hàm fscanf( ) đọc dữ liệu có định dạng từ file.

  • Hàm fscanf( ) trả về số lượng trường dữ liệu đọc thành công
  • Hàm trả về 0 nếu đọc không thành công.
  • Format của hàm fscanf( ) phải giống của đầu vào hàm fprintf( ).

Chú ý:

  • Hàm fscanf( ) đọc dữ liệu xong, con trỏ file sẽ bị dịch chuyển đi.
  • Nếu hàm fprintf( ) ghi xuống file nhiều dữ liệu khác nhau (int, float, char*,..) thì định dạng ghi xuống nên phân tách giữa các dữ liệu này (có thể bằng dấu cách hoặc tab ‘\t’ hoặc dấu xuông dòng ‘\n’) , thì hàm fscanf( ) mới có thể đọc được

Ví dụ: Ghi và đọc file bằng hàm fprintf( ) và fscanf( ).

#include "stdio.h"
#include "conio.h"


void main()
{
    FILE *fp;
    long l;
    float f;
    char s[81];
    char c;
    int n_byte;

    if( (fp = fopen("D:\\data.bar", "w+" )) == NULL)
        printf( "The file data.bar was not opened\n" );
    else
    {    
        fprintf( fp, "%s\n%ld %f %c", "vncoding.net", 2013, 3.14159, 'x' );

        // Set pointer to beginning of file:
        fseek( fp, 0L, SEEK_SET );

        // Read data back from file:
        n_byte = fscanf(fp, "%s\n%ld %f %c", s, &l, &f, &c);

        // Output data read: 
        printf("\nn_byte = %d\n",n_byte);
        printf( "%s\n", s );
        printf( "%ld\n", l );
        printf( "%f\n", f );
        printf( "%c\n", c );

        fclose( fp );
    }
    getch(); 
}

Kết quả:

Nội dung file data.bar
Hàm fscanf đọc dữ liệu từ file

Be the first to comment

Leave a Reply