Có 2 điểm khác biệt mà mình nhận ra khi sử dụng
+Thứ nhật: Đó chính là cú pháp, cụ thể: fgetc(<con trỏ>), fscanf(<con trỏ>,"% gì đó",biến)
+Thứ hai: test thử 2 code sau sẽ hiểu :D
+Thứ hai: test thử 2 code sau sẽ hiểu :D
---------------------------------------------------------------
#include <stdio.h>
#include <stdio.h>
int main()
{
char a;
FILE *f=fopen("STRING.TXT","rt");
do
{
fscanf(f,"%c",&a);
printf("%c",a);
}while (!feof(f));
getchar();
getchar();
return 0;
}
STRING.TXT: "asd" -> output: "asdd".
-----------------------------------------------------------------
#include <stdio.h>
int main()
{
char a;
FILE *f=fopen("STRING.TXT","rt");
do
{
a=fgetc(f);
printf("%c",a);
}while (!feof(f));
getchar();
getchar();
return 0;
}
STRING.TXT: "asd" -> output: "asd " (lưu ý: có khoảng trắng nhé)
-----------------------------------------------------------------
Với 2 code trên cũng thấy sự khác biệt khó hiểu rồi :D nếu các bạn cho in ra mã ASCII thì còn thấy một chút lạ nữa :D.
Đối với fscanf nó sẽ không đọc kí tự EOF (có thể vì đây không phải kí tự in được) và nó vẫn giứ kí tự cũ.
fgetc thì nghiêm túc hơn nó đọc EOF bạn xem mã ASCII thì thấy lạ thay cái khoảng trắng kia có mã ASCII là -1. :D
Vui vẻ một chút thôi, làm đồ án đây.
-----------------------------------------------------------------
#include <stdio.h>
int main()
{
char a;
FILE *f=fopen("STRING.TXT","rt");
do
{
a=fgetc(f);
printf("%c",a);
}while (!feof(f));
getchar();
getchar();
return 0;
}
STRING.TXT: "asd" -> output: "asd " (lưu ý: có khoảng trắng nhé)
-----------------------------------------------------------------
Với 2 code trên cũng thấy sự khác biệt khó hiểu rồi :D nếu các bạn cho in ra mã ASCII thì còn thấy một chút lạ nữa :D.
Đối với fscanf nó sẽ không đọc kí tự EOF (có thể vì đây không phải kí tự in được) và nó vẫn giứ kí tự cũ.
fgetc thì nghiêm túc hơn nó đọc EOF bạn xem mã ASCII thì thấy lạ thay cái khoảng trắng kia có mã ASCII là -1. :D
Vui vẻ một chút thôi, làm đồ án đây.