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ả:
Leave a Reply
You must be logged in to post a comment.