30/09/2018, 16:51
While (!feof(f)) dùng để làm gì?
void cau2()
{
FILE*f;
f=fopen("chuoi.inp","rt");
char*s;
s=new char[256];
fprintf(g,"cau 2:
",f);
while(!feof(f))
{
fgets(s,256,f);
int h=strlen(s)-1;
fprintf(g,"%d
",h);
}
fclose(f);
}
thì câu lệnh while(!feof(f)) dùng để làm gì ? đếm độ dài của chuỗi thì tại sao lại phải trừ đi 1 mới ra kết quả đúng trong dòng code int h=strlen(s)-1; vậy ạ ???
Bài liên quan
while (!eof(f)) theo mình hiểu nghĩa là khi nào chưa gặp kí tự kết thúc eof trong file thì sẽ còn thực hiện đọc kí tự có trong file. Còn -1 nghĩa là trừ đi kí tự kết thúc chuỗi (hình như là \n hả j ak).
eof = end of file
strlen(s)-1, do hàm fgets khi lấy bao gôm cả ký tự null ở cuối mỗi chuổi
cảm ơn mọi người mà còn đoạn code này nó có tới 3 vòng lặp ai có thể giải thích cho mình ý nghĩa của từng vòng không ạ ?
vòng for 1: khởi tạo số lần xuất hiện ‘a’ tới ‘z’ ở chuỗi h =0
vòng while 2: đếm các kí tự khi chưa kết thúc file, ngoại trừ ’ ', 10 và eof
vòng for 3: in ra các kí tự xuất hiện và số lần xuất hiện
có ai rảnh không giải thích cho em dòng code này đi cảm ơn mọi người