30/09/2018, 19:59
Lỗi vòng lặp vô hạn in ra toàn khoảng trống trên màn hình console
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *taptin = fopen("text.txt","r+");
char c;
if(taptin!=NULL) {
fputs("hello",taptin);
do {
c=fgetc(taptin);
printf("%c",c);
} while (c!=EOF);
} else
printf("file not foud");
fclose(taptin);
}
cụ thể nếu em dùng đoạn
do { c=fgetc(taptin); printf("%c",c); } while (c!=EOF);
thì vẫn viết được vào file text nhưng nó lại in ra màn hình console rất nhiều khoảng trống
giúp em với ạ tks!!@@
Bài liên quan
Bạn ơi, Trước hết bạn sửa lại code đi nào
Cho vào Markdown nhé. Để mọi người dễ dàng hơn trong việc giúp đỡ nhé
Bạn mở một file để ghi thì dùng điều kiện này hơi bất hợp lý vì làm sao kiểm tra được lúc nào thì kết thúc file
Nếu dùng
do-while
thì điều kiện sửa lại làc==EOF
, dùngwhile
mớic!=EOF
Tks mọi người mình mới nhập môn nên hơi gà
mình thử rồi nhưng nếu thây thành c==EOF thì chả in ra j cả
mà vừa mình kiểm tra lại thì đằng sau file text cũng có một khoảng trống khoảng 3 dòng
ok bạn, cho mình xin lỗi vì nhầm. điều kiện vòng do-while của bạn đúng chứ ko sai, mình bộp chộp sai chỗ này. bài của bạn khắc phục như sau
bởi vì sau khi bạn fputs chuỗi “hello” lên taptin thì con trỏ taptin nó trỏ ngay sau kí tự ‘o’, bạn phải chuyển con trỏ về đầu file thì mới đọc được.
à tks bạn mình cũng đọc tài liệu liên quan đến cái “dấu nháy ảo” rồi mỗi tội k hiểu sao quên. lúc bạn ns đến mình mới nhớ